Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:更改ListView中存在的ImageView的源_Android_Image_Listview - Fatal编程技术网

Android:更改ListView中存在的ImageView的源

Android:更改ListView中存在的ImageView的源,android,image,listview,Android,Image,Listview,我有一个由list_item.xml指定的列表视图,现在我需要在onListItemClick中更改列表中的图像。如何做到这一点 //list_item.xml <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" andro

我有一个由list_item.xml指定的列表视图,现在我需要在onListItemClick中更改列表中的图像。如何做到这一点

//list_item.xml
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/play" 
android:id="@+id/img"
/> 
<TextView 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:id="@+id/txt"
/>
</LinearLayout>

现在,当选择任何行时,我需要更改与所选视图关联的图像。谢谢你的帮助。谢谢。

编辑:您可以实现一个,然后对项目单击做出反应。然后使用此选项更改位图的源

编辑2:现在可以使用上述方法。这是代码

            @Override
            public void onItemClick(AdapterView<?> adaptview, View clickedview, int position,
                    long id) {

                //TEST SO 4533684
                View subview = clickedview.findViewById(R.id.musicicon);
                ((ImageView) subview).setImageResource(R.drawable.icon);
                //END TEST 
            }
@覆盖
公共位置单击(适配器视图适配器视图,视图单击视图,内部位置,
长id){
//测试SO 4533684
视图子视图=clickedview.findViewById(R.id.MusicOn);
((ImageView)子视图).setImageResource(R.drawable.icon);
//结束测试
}

如您所见,对于列表中的每一行,R.id.musicicon始终是imageview的相同id。但是clickedview提供了发生单击的确切行,在这一行中,只有一个具有给定id的imageview子级。

否,我不需要选择器。相反,我需要更改所选行中的图像。这是否也适用于选择器?我认为您可以为图像指定一个选择器,然后图像视图将根据状态而改变。编辑:好的,我现在看到这里没有选择器。所以请检查我编辑的答案。希望能有帮助。谢谢你的努力。但这种方法在这里行不通。如果我放置了一个ID为的位图,那么我可以更改源代码。但是在listview中,每个图像都有相同的ID。这种方法是不可能的。也许我可以在业余时间仔细看看这个问题。我更新了我的答案。它对我有用。
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    try
    {
            setListAdapter(new MyCustomAdapter(this, R.layout.list_item, Sounds));
            //Sounds --> String array 
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
  }
            @Override
            public void onItemClick(AdapterView<?> adaptview, View clickedview, int position,
                    long id) {

                //TEST SO 4533684
                View subview = clickedview.findViewById(R.id.musicicon);
                ((ImageView) subview).setImageResource(R.drawable.icon);
                //END TEST 
            }