Selecione vários itens da lista e altere a cor apenas do item selecionado
Eu quero fazer uma visão onde eu possa selecionar vários itens de listview e também lado a lado estou mudando a cor do item da lista selecionada e salvar esse item em meu arraylist ... Minha lista é mostrada como abaixo como:
Mas quando eu costumava rolá-lo .. Ele está me mostrando mais 1 item selecionado, mesmo não estou selecionando-o como:
Mas eu quero que apenas essa cor do item da lista mude onde eu vou clicar ...
Eu estou usando o código como:
<code> private class ItemsAdapter extends ArrayAdapter<String> { List<String> items; Context context; private LayoutInflater inflater; public ItemsAdapter(Context context, List<String> part_array_list) { super( context, R.layout.part_list, R.id.label,part_array_list ); inflater = LayoutInflater.from(context) ; } @Override public View getView(int position, View convertView, ViewGroup parent) { TextView textView ; String item = (String) this.getItem( position ); if ( convertView == null ) { convertView = inflater.inflate(R.layout.part_list, null); // Find the child views. textView = (TextView) convertView.findViewById( R.id.label ); // Optimization: Tag the row with it's child views, so we don't have to // call findViewById() later when we reuse the row. convertView.setTag( new ListViewHolder(textView) ); } // Reuse existing row view else { // Because we use a ViewHolder, we avoid having to call findViewById(). ListViewHolder viewHolder = (ListViewHolder) convertView.getTag(); textView = viewHolder.getTextView() ; } textView.setText( part_array_list.get(position) ); return convertView; } } /** Holds child views for one row. */ private class ListViewHolder { private TextView textView ; public ListViewHolder() {} public ListViewHolder( TextView textView ) { this.textView = textView ; } public TextView getTextView() { return textView; } public void setTextView(TextView textView) { this.textView = textView; } </code>
}
e no método OnCreate (),
<code> final ArrayAdapter<String> part_list_adapter=new ItemsAdapter(AssetSearch.this, part_array_list); //PartNumber_List.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); PartNumber_List.setAdapter(part_list_adapter); PartNumber_List.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { ListViewHolder viewHolder = (ListViewHolder) v.getTag(); viewHolder.getTextView().setBackgroundColor(R.color.result_image_border); String item=(String) part_list_adapter.getItem((int) id); }); </code>