我有一个listview,我希望它用于显示文本和corrs图像。我已经使用了arrayadapter。我能够得到一个包含文本值和图像网址的哈希图的arraylist。
<Arraylist<Hashmap<String,string>> testdata : "name" and "image_url"
现在我想绑定它。但是没有显示图像,并且logcat显示resolveuri在坏位图上失败。 (我的网址是“/com.example.vocab.MainActivity/res/drawable-hdpi/right_icon.png”)。我究竟做错了什么?提前做任何帮助。
// Binding resources Array to ListAdapter
this.setListAdapter(new SimpleAdapter(Grammar_tab_all.this, testdata ,
R.layout.list_item, new String[] { "name","img_url"},
new int[] { R.id.module_name_item, R.id.img_recom}));
final ListView lv = getListView();
答案 0 :(得分:0)
如果您需要更多内容,请使用此<Arraylist<Hashmap<String,string>> testdata
代替此<Arraylist<Hashmap<String,Object>> testdata
,请参阅此链接http://developerboards.att.lithium.com/t5/AT-T-Developer-Program-Blogs/Developing-Apps-for-Android-Beyond-quot-Hello-World-quot-Part-I/ba-p/28983/page/2
答案 1 :(得分:0)
要在listview中显示可绘制图像,最好的方法是仅存储可绘制图像的int id。
试试这个。
listItems = new ArrayList<HashMap<String,Integer>>();
String fieldName = "image_id";
HashMap<String, Integer> listData1 = new HashMap<String, Integer>();
HashMap<String, Integer> listData2 = new HashMap<String, Integer>();
listData1.put(fieldName, R.drawable.camera_icon_focus_dim);
listData2.put(fieldName, R.drawable.camera_icon_scene_mode);
listItems.add(listData1);
listItems.add(listData2);
SimpleAdapter listItemAdapter = new SimpleAdapter(
this,
listItems,
R.layout.image_list_item,
new String[] { fieldName },
new int[] { R.id.listitem_img });
答案 2 :(得分:0)
您必须使用自定义列表视图: 看看这个网站 http://blog.sptechnolab.com/2011/02/01/android/android-custom-listview-items-and-adapters/
答案 3 :(得分:0)
如果你使用android资源文件夹中的图像,那么你可以使用
// get Drawable from resources folder
Resources res = context.getResources();
Drawable drawable = res.getDrawable( R.drawable.myImage );
ImageView mImageView.setImageDrawable( mDrawable );
// or
ImageView mImageView.setImageBitmap( mBitmap );
ImageView是ListItems布局中的一个。我为每个ListView编写了一个自己的ListAdapter,在其中我扩展了特殊布局并将数据设置为布局。
答案 4 :(得分:0)
如果你想拥有不同的图片,那么你需要一个自定义的listadapter,这是我在互联网上找到的关于这个主题的最好的tutorial :)