Wybierz wiele elementów z listy i zmień kolor tylko wybranego elementu
Chcę zrobić widok, w którym mogę wybrać wiele elementów z listy, a także obok siebie zmieniam kolor wybranego elementu listy i zapisuję ten element w mojej arraylist .. Moja lista jest pokazana poniżej:
Ale kiedy go przewijałem .. Pokazuje mi się jeszcze 1 wybrany element, nawet ja go nie wybieram jak:
Ale chcę, aby zmienił się tylko ten kolor elementu listy, w którym kliknę ...
Używam kodu jako:
<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>
}
oraz w metodzie 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>