我的android代码可以使用onClick事件将背景颜色更改为第一个可见listview项目的绿色,但是当我向下滚动listview并尝试单击列表时,则不会显示绿色。如何解决这个问题任何帮助将受到高度赞赏。我附上了我的代码片段。
public void onItemClick( AdapterView<?> parent, View item,
int position, long id) {
for(int i=0; i<parent.getChildCount(); i++)
{
Log.d("TAG", "Number of times printed");
if(i == position)
{
parent.getChildAt(position).setBackgroundColor(Color.GREEN);
// Log.d("TAG","Green at position :: " + position);
}
else
{
parent.getChildAt(i).setBackgroundColor(Color.GRAY);
}
}
}
答案 0 :(得分:1)
在values文件夹
中的color.xml文件中定义颜色在可绘制文件夹listViewBackground.xml
中使用以下代码制作xml文件 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true"
android:state_pressed="false"
android:drawable="@color/grey" />
<item android:state_focused="true"
android:state_pressed="true"
android:drawable="@color/green"
/>
<item android:state_focused="false"
android:state_pressed="true"
android:drawable="@color/green" />
<item android:drawable="@color/grey" />
并将此文件设置为列表项的背景
答案 1 :(得分:0)
而不是
parent.getChildAt(position).setBackgroundColor(Color.GREEN);
试试这个
parent.getChildAt(position).setBackgroundColor(R.color.orange);
您需要在values.xml - vales / color.xml
中的color.xml中定义颜色<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="orange">#e68c10</color>
</resources>
并查找您的功能尝试使用
public void onListItemClick(ListView parent,View v,int position,long id){}