我需要在每个列表项的右侧放置小图标。我知道可以使用自定义列表完成,但这意味着重新编写大量代码。如果有办法不使用自定义适配器吗?
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);
答案 0 :(得分:2)
不,在自定义适配器中覆盖getView
是将不同图像动态设置到列表行的唯一方法。但是,如果要为所有行项设置静态(相同)图像,则可以为行定义自定义资源xml(内部带有TextView
和ImageView
或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);