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:
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;
}
}
e no método OnCreate (),
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);
});