Android:更改ListView中存在的ImageView的源
我有一个由list_item.xml指定的列表视图,现在我需要在onListItemClick中更改列表中的图像。如何做到这一点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
<?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
}