如何在列表视图中显示文本和图像?

时间:2012-08-29 08:23:02

标签: android listview bitmapimage

我有一个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();

5 个答案:

答案 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 :)