我的ListView
适用于自定义适配器,每行有两个ImageView
和一个TextView
。
我想通过更改其ImageView
来处理两个drawable
之一的点击。
我尝试了AdapterView.OnItemClickListener
课程
并且还尝试在适配器类中的OnClickListener
上添加特定的ImageView
并且听力在那里工作,但它无法更新drawable
的{{1}}。
那我怎么做呢?
这是我ImageView
方法中的代码:
adapter.getView()
答案 0 :(得分:0)
正如@ has19所评论的那样。在onClick
上不要直接更改ImageView
的可绘制内容,而是更改您在适配器getView
中选择drawable的数据。然后在单击后调用适配器上的notifyDataSetChanged()
。
示例伪代码:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final MyObject myObject = getItem(position);
ImageView imageView = convertView.findViewById(R.id.myImageViewId);
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
myObject.setImageSelectionCriteria(someCriteria);
MyAdapter.this.notifyDataSetChanged();
}
});
if(myObject.getImageSelectionCriteria().equals(someCriteria)) {
imageView.setImageResource(R.drawable.some_drawable);
} else {
imageView.setImageResource(R.drawable.some_other_drawable);
}
}