Я использую настроенное представление списка для контрольного списка. Одно изображение и некоторый текст задается с помощью ArrayAdapter. Когда пользователь нажимает на элемент в списке, я хочу сначала удалить курсор изображения изображения, установленного с фоновым ресурсом в XML, и заменить его на другой.ListView Изображение не обновляется при нажатии элемента
Во-первых изображение не исчезает, а во-вторых, образ я пытаюсь установить его тоже, кажется, появляются в случайном порядке, а иногда и не на всех:
В onListItemClicked Метод
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// when a list item is clicked, first remove the XML set image cross to a replace with tick on image view
super.onListItemClick(l, v, position, id);
ImageView equitmentCrossed = (ImageView) this.findViewById(R.id.iv_equitmentCheckList_Cross);
equitmentCrossed.setBackgroundResource(0);
//displayImage.setBackground(null);
equitmentCrossed.setBackgroundResource(R.drawable.tick);
}//end onListItemClicked
Массив Addapter:
ArrayAdapter checklistadaptor = new ArrayAdapter<Pair<String, Integer>>(this,
R.layout.checklist_row, R.id.tv_equimentChecklistName, equitmentAndImagesArray) {
//over ride getView
public View getView(int position, View convertView, ViewGroup container) {
if(convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.checklist_row, container, false);
}
TextView title = (TextView) convertView.findViewById(R.id.tv_equimentChecklistName);
Pair<String, Integer> item = getItem(position);
title.setText(item.first);
ImageView displayIcon = (ImageView) convertView.findViewById(R.id.iv_equimentChecklist);
displayIcon.setBackgroundResource(item.second);
//title.setCompoundDrawablesWithIntrinsicBounds(item.second, 0, 0, 0);
return convertView;
}
};//end getView
this.setListAdapter(checklistadaptor);
Какова точка вызова 'setBackgroundResource' последовательно? – codeMagic
Первый вызов - удалить текущую выписку, определенную в XML. Во-вторых, заменить на новый drawable – dancingbush
Так почему бы просто не заменить его? – codeMagic