Android:为什么setImageResource会在my listView/onListItemClick中更改几个图像?
我的应用程序有一个调查问卷,通过列表视图显示。 用户可以通过单击ListItem来回答true或false。 imageView表示答案为真。(每次单击ListItem时,我都会更改imageView) 在全球范围内,它运行良好。我已经能够动态更改imageView,但令人惊讶的是,当我使用setImageResource时,图像会在几行上发生更改。 对于距离,如果单击第2行(索引1),图像将在第2行以及第12行和第22行发生更改 目前我还没有找到解决办法。 如果你能给我任何线索,我将不胜感激 这是我的列表项的布局Android:为什么setImageResource会在my listView/onListItemClick中更改几个图像?,android,android-listview,android-imageview,Android,Android Listview,Android Imageview,我的应用程序有一个调查问卷,通过列表视图显示。 用户可以通过单击ListItem来回答true或false。 imageView表示答案为真。(每次单击ListItem时,我都会更改imageView) 在全球范围内,它运行良好。我已经能够动态更改imageView,但令人惊讶的是,当我使用setImageResource时,图像会在几行上发生更改。 对于距离,如果单击第2行(索引1),图像将在第2行以及第12行和第22行发生更改 目前我还没有找到解决办法。 如果你能给我任何线索,我将不胜感激
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="30dp"
>
<ImageView
android:id="@+id/ivCheck"
android:layout_width="25dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:contentDescription="selection state"
android:src="@drawable/check_grey" />
<TextView
android:id="@+id/tvId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="false"
android:layout_gravity="center_vertical"
android:text="dummy text"
android:visibility="gone"
/>
<TextView
android:id="@+id/tvText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_gravity="center_vertical"
android:layout_marginLeft="14dp"
android:layout_toRightOf="@+id/ivCheck"
android:text="dummy text"
android:textIsSelectable="false" />
</RelativeLayout>
感谢您在advanced中的帮助这是由于ListView中的视图回收。您需要覆盖适配器的
getView
方法,并重置与先前更改不相关的ImageView的源
欲了解更多信息,请阅读或观看视频。更改单行线并观看魔术
position = position % (QuizAnswer) quizRequest.getListAnswers().size();
您必须将自定义适配器应用于listview。 检查以下链接:
. 希望这能对你有所帮助。另外,看看你的疑问肯定会得到解决,这是一个很好的教程。这种行为不容易理解。谢谢你提供了这些有用的链接。是的,一开始这是一个很难的话题,但是一旦你开始做这件事,你会发现它很容易。你的列表显示正确了吗?你有没有重复这些项目?也许他们的观点是一样的,这就是为什么它会这样。
position = position % (QuizAnswer) quizRequest.getListAnswers().size();