在列表视图中选择多个项目并更改所选项目的背景颜色

时间:2012-04-10 08:49:54

标签: android android-listview

嘿,我有一件事我想要这样的观点:

enter image description here

在listview中我可以选择多个项目以及我可以选择哪个项目我可以更改背景颜色并将该项目添加到arraylist中以便我可以进一步使用它。

任何人都可以帮助我吗?

修改

我这样使用它:

     ArrayAdapter<String> part_list_adapter=new ArrayAdapter<String>(AssetSearch.this,  R.layout.part_list,R.id.label,part_array_list);

    PartNumber_List.setAdapter(part_list_adapter);


       PartNumber_List.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View v, int position,
            long id) {
        String item = (String)PartNumber_List.getItemAtPosition(position);

        Log.i("Item", item);
         v.setBackgroundColor(R.color.result_image_border);

    }
});

在日志中,它显示的是仅点击的项目..但是更改了2个项目的颜色......

2 个答案:

答案 0 :(得分:1)

试试这样..

  @Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    // Get the item that was clicked
   String item = (String) getListAdapter().getItem(position);
    boolean blnFound = yourarrayList.contains(item);
 if(blnFound=true){
     yourarraylist.remove(item);
       v.setBackgroundColor(R.color.somecolourtoindicate notselected);

    }
   else{
          yourarraylist.add(item);
          v.setBackgroundColor(R.color.somecolourtoindicate itemselected);
    }
    yourarraylist.add((String) getListAdapter().getItem(position);)
}

答案 1 :(得分:1)

您要为列表视图单元格的视图v设置背景,实际列出视图适配器在滚动视图时重复使用单元格视图,因为颜色反映在其他一些行单元格中。

只需要将一个图像视图添加到视图支架并尝试更改视图支架中图像视图的背景,不要更改适配器视图颜色。