2012-02-18 1 views
3

Я хочу добавить изображение в список, как это сделать? Имена и тип отображаются правильно. В настоящее время застрял здесь.Android: Dealing HashMap.put для изображения

.//other codes 
. 
. 
try{ 
     JSONArray arr = new JSONArray(res); 
     for(int i=0;i<arr.length();i++){       
      HashMap<String, String> map = new HashMap<String, String>(); 
      JSONObject e = arr.getJSONObject(i); 

      map.put("placeID", ""+ e.getString("placeID")); 
      map.put("placeName",""+ e.getString("placeName")); 
      map.put("placeType", ""+ e.getString("placeType")); 
      map.put("image", R.drawable.ball_green); 

      mylist.add(map);    
     }  
    }catch(JSONException e)  { 
     Log.e("log_tag", "Error parsing data "+e.toString()); 
    } 

    ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.places, 
        new String[] { "placeName", "placeType" }, 
        new int[] { R.id.placeName, R.id.placeType }); 
. 
. 
.//other codes 

Я хочу, чтобы изображение правильно нравится:

ListView

ответ

3

R.java класс автоматически генерируется при построении времени и поддерживает «список» целых чисел, которые являются идентификаторами ресурсов. Другими словами, R.<anything> является Integer и не представляет непосредственно ресурс (строка, выталкиваемая и т. Д.).

Как ваш HashMap ожидает String типов как для ключей и значений, вам необходимо преобразовать идентификатор ball_green ресурса в String. Пример ...

map.put("image", String.valueOf(R.drawable.ball_green)); 

Для того, чтобы использовать его снова вам придется конвертировать что String обратно к Integer при его использовании для установки изображения виджета, таких как ImageView т.д.

+0

Я хотел бы знать, если бы я загрузил растровое изображение, как я могу использовать его в map.put ("image", String.valueOf (bitmapfile)); Есть ли способ подключить загруженный файл здесь? – Joe

+0

@Joe: если вы загружаете файл (растровое изображение или любой другой тип), он никогда не будет иметь значение int, назначенное ему в классе R.java, поэтому вам не нужно будет использовать 'String.valueOf (...) '. OP использовал «HashMap » - если вы делаете то же самое, просто используйте путь к загруженному файлу в качестве второй строки. – Squonk

+0

Ic Попробую! Спасибо за ответ – Joe

1

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

 Смежные вопросы

  • Нет связанных вопросов^_^