2012-11-28 2 views
0

LazyList (LL)과 Universal Image Loader (UIL)을 모두 테스트 중이며 here입니다. 또한 JSON 문서에서로드 할 URL을 검색하기 위해 일부 수정 작업을 성공적으로 수행했습니다. JSON은 Flickr에서 제공 한 것입니다. 제목, 설명 및 JSON에서 저자 좋아하고 더 많은 데이터 (사진을 얻기 위해) 나는 URL을 얻었다. 이 이미지로드 도구를 사용하기 전에 나는이 같은 SimpleAdapter로보기에 데이터를 전달 : LazyList 또는 Universal Image Loader에 동적 데이터를 표시하는 방법은 무엇입니까?

// Hashmap for ListView   
    ArrayList<HashMap<String, String>> itemsList = new ArrayList<HashMap<String, String>>(); 

그런 다음 몇 가지 코드이 guide에 따라 다음 itemsList에

 ListAdapter adapter = new SimpleAdapter(this, itemsList, 
      R.layout.item, 
      new String[] { TAG_TITLE, TAG_DESCRIPTION, TAG_AUTHOR }, new int[] { 
        R.id.title, R.id.description, R.id.author }); 

    setListAdapter(adapter); 

    // selecting single ListView item 
    ListView list = getListView(); 


    // Launching new screen on Selecting Single ListItem 
    list.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 

      // getting values from selected ListItem 
      String title = ((TextView) view.findViewById(R.id.title)).getText().toString(); 
      String description = ((TextView) view.findViewById(R.id.description)).getText().toString(); 
      String author = ((TextView) view.findViewById(R.id.author)).getText().toString(); 

      // Starting new intent 
      Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class); 
      in.putExtra(TAG_TITLE, title); 
      in.putExtra(TAG_DESCRIPTION, description); 
      in.putExtra(TAG_AUTHOR, author); 
      startActivity(in); 
     } 
    }); 

를 JSON 데이터를 입력 할 수 있습니다. LL 나 UIL로 코드를 병합하려고 했으므로 작동하지 않게되었습니다.

이러한 이미지 로더는 자신의 어댑터를 GetWiew 메서드와 함께 사용합니다. 마지막으로 여기에 질문이 있습니다. 동적 데이터를 어댑터에 어떻게 전달합니까? 좀 더 명확하게하기 위해


, 나는 울부 짖는 그림에서 제목, 설명 대신 "항목 X"의 사진의 오른쪽에 저자 같은 정보를 표시하려면 :

Example from LazyList

답변

2

를 사용하여 사용자 정의 어댑터 :

public class MySimpleAdapter extends SimpleAdapter { 

    private List<String> mImageUrls; 

    public MySimpleAdapter(Context context, List<? extends Map<String, ?>> data, List<String> imageUrls, int resource, String[] from, int[] to) { 
     super(context, data, resource, from, to); 
     mImageUrls = imageUrls; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View view = super.getView(position, convertView, parent); 

     ImageView imageView = view.findViewById(R.id.my_image); 
     ImageLoader.getInstance().displayImage(mImageUrls.get(position), imageView); 

     return view; 
    } 
} 

그리고 imageUrls을 생성자에 전달하십시오.

+0

그럴 수 있습니다. 나는이 문제에 대해 다른 접근법을 취했다. 어쨌든, 고마워! – Medeiros