我的ListView
项目包含以下组件 - TextView
,然后在其下面有两个ImageViews
- like
和dislike
。
因此,当我点击like
或dislike
时,我希望能够将like
或dislike
ImageView
从灰色更改为蓝色。
当我点击like
时,like
ImageView
确实从灰色变为蓝色。但不仅对于相应的ListView
项而且对于列表中的每个第3项 - 所以如果我的列表中有10个项目,则单击列表中第一项的like
,然后是第4项,第7项和第10项like
ImageView
从灰色变为蓝色。
在文件post_list_item.xml
的{{1}}中,我指定了以下root element
,但它也没有帮助。
我的问题是 - 我必须这样做,当我点击android:descendantFocusability="blocksDescendants"
或like
时,我可以更改dislike
或like
{ {1}}从灰色到蓝色而不影响其他列表项?
以下是dislike
ImageView
答案 0 :(得分:0)
您可以在drawables / like.xml中使用状态drawable,如下所示,
like.xml
<item android:state_activated="true"
android:drawable="@drawable/like_blue"/>
<item android:drawable="@drawable/like_grey"/>
您可以添加到您的imageview&#39>
android:src="@drawable/like"
android:clickable="true"
在你的适配器中,
ivLike.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(ivLike.isActivated())
ivLike.setActivated(false);
else
ivLike.setActivated(true);
}
});
对于不喜欢的图像,你也可以这样做。
答案 1 :(得分:0)
您正在遇到视图回收问题。要了解更多信息,请查看this question的答案。在您的情况下,最简单的方法是使用传递到Quantstrat
方法的视图:
onClick