1 回答
TA贡献1883条经验 获得超3个赞
整数默认值为 0,因此当列表显示时,您的行值将更改第一行的背景颜色。
您可以使用
private int row = -1 ;
代替
private int row ;
您还需要在用户单击行时更改行值。
myAd.layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
...
row = myAd.adapterPosition();
notifyDataSetChanged();
另一种使用选择器的方法是这样的。我可以更具可读性和简单性。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/blue" android:state_pressed="true"/>
<item android:drawable="@color/AliceBlue" android:state_focused="true"/>
<item android:drawable="@color/Azure"/>
</selector>
添加回答
举报