2012-02-21 3 views
0

Я успешно проанализировал мои изображения json и отобразил ответ как изображение, однако я могу отображать только одно изображение за раз.Отобразите эти json-изображения как listview

enter image description here

Как я могу отобразить эти изображения как ListView с помощью этого кода.

Перед публикацией этого вопроса я также искал это решение. Я хочу отображать эти изображения в виде списка вместе с моими другими значениями json, используя приведенный ниже код.

protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

    JSONParser prop = new JSONParser(); 
    JSONObject json = prop.getJSONFromUrl(url); 
    try{ 
    properties = json.getJSONArray(TAG_PROPERTY); 
    for (int i = 0; i < properties.length(); i++) { 
     JSONObject c = properties.getJSONObject(i); 
     String photoThumbnailUrl = c.getString(TAG_PHOTOS);    

    // load image view control 
    imgView = (ImageView) findViewById(R.id.imgView); 

    // grab image to display 
    try { 
     imgView.setImageDrawable(grabImageFromUrl(photoThumbnailUrl)); 


    } catch (Exception e) { 
     txtUrl.setText("Error: image not grabed"); 
    } 
    } 
    }catch (Exception ex) { 
    txtUrl.setText("Error: Properties not recieved"); 
    } 
} 
private Drawable grabImageFromUrl(String photoThumbnailUrl) { 
    System.out.println(photoThumbnailUrl); 
    // TODO Auto-generated method stub 
    return null; 
} 
//from here only one image is displayed.... 
//start the listview here 

    public View getView(int position, View convertView, ViewGroup parent) { 
     System.out.println("ok"); 
     // TODO Auto-generated method stub 
     ViewHolder holder; 
     if (convertView == null) { 
      //convertView = inflater.inflate(R.layout.list_items, null); 
      holder = new ViewHolder(); 
      holder.identifier= (TextView) convertView 
        .findViewById(R.id.identifier); 
      holder.price = (TextView) convertView.findViewById(R.id.price); 
      holder.address = (TextView) convertView.findViewById(R.id.address); 
      holder.photoThumbnailUrl = (ImageView) convertView 
        .findViewById(R.id.imgView); 
      convertView.setTag(holder); 
      System.out.println("identifier"); 
     } else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 
     return convertView; 
} 
    class ViewHolder{ 
     public TextView identifier; 
     public TextView price; 
     public TextView address; 
     public ImageView photoThumbnailUrl; 

    } 
    } 

Большое спасибо

ответ

2

Я думаю, что вы должны создать пользовательский элемент управления ListView с XML и использовать SimpleAdapter для заполнения каждой строки с элементами JSON. Некоторое время назад используется статья this, чтобы помочь мне, я надеюсь, что она вам тоже поможет.

0

Для списка просмотра вам необходимо скачать новый контент для каждой строки.

Это может быть сложно сделать правильно. Я создал помощник здесь: https://github.com/mufumbo/android-helper/blob/master/src/com/mufumbo/android/helper/ThumbLoader.java

Пример использования:

Сделайте ViewHolder реализовать {@link ThumbLoader.ThumbEvent}, а затем при наполнении ViewHolder:

ThumbLoader thumbLoaderInstance;

общественное мнение GetView (интермедиат положение, Вид convertView, ViewGroup родитель) {

....

thumbLoaderInstance.pushEvent (держатель, правда);
....

}