有没有什么办法可以在不使用自定义适配器的情况下在列表中的每个项目旁边添加图像?

时间:2012-09-08 20:42:41

标签: android listview

我需要在每个列表项的右侧放置小图标。我知道可以使用自定义列表完成,但这意味着重新编写大量代码。如果有办法不使用自定义适配器吗?

mList = (ListView) findViewById(R.id.sidebar_list);
        mList.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_multiple_choice, mStrings));
        mList.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);

3 个答案:

答案 0 :(得分:2)

不,在自定义适配器中覆盖getView是将不同图像动态设置到列表行的唯一方法。但是,如果要为所有行项设置静态(相同)图像,则可以为行定义自定义资源xml(内部带有TextViewImageView或comppund drawable-TextView并在初始化时将其传递给默认适配器。

答案 1 :(得分:0)

是的,您可以使用SimpleAdapter和带有ImageView的自定义布局。


琐碎的例子:

List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map = new HashMap<String, String>();
map.put("text", "one");
map.put("image", String.valueOf(getResources().getIdentifier("ic_launcher", "drawable", getPackageName())));
list.add(map);

ListView listView = (ListView) findViewById(R.id.list);
listView.setAdapter(new SimpleAdapter(this, list, R.layout.list_item, new String[] {"text", "image"}, new int[] {R.id.text, R.id.image}));

答案 2 :(得分:0)

您需要为视图创建XML布局(如果没有)并添加imageview。 你应该给它和ID('thubnail')。接下来你只要问适配器按位置查看某个视图

View singleView = listView.getChildAt(wantedChild);
ImageView thumbnail = (ImageView) singleView.findViewById(R.id.thumbnail);
thumbnail.setImageBitmap(bitmap);