Android:为什么setImageResource会在my listView/onListItemClick中更改几个图像?

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行发生更改 目前我还没有找到解决办法。 如果你能给我任何线索,我将不胜感激

我的应用程序有一个调查问卷,通过列表视图显示。 用户可以通过单击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();