我正在开发一个Android应用程序,我有很多要显示的项目ListView
:
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@android:id/list"
android:layout_gravity="right|center_vertical"
android:listSelector="@drawable/bg_selector"/>
bg_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="#8F136fb8"/>
</selector>
我希望每个项目都有不同的背景颜色,我将它们设置为getView
的{{1}}方法:
adapter
但是我发现,一旦我选择了一个项目,就没有对用户事件做出响应我将 @Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
.....
Color color=generateColor();
viewHolder.textView.setBackgroundColor(color);
return convertView;
}
设置为selector
答案 0 :(得分:0)
<强>问题:强>
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="#8F136fb8"/>
</selector>
当您没有点击该项目时,您需要具有默认颜色,否则它将无法正常工作
<强>样品:强>
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="#8F136fb8"/>
<item android:state_pressed="false" android:drawable="@android:color/transparent"/>
<item android:drawable="@android:color/transparent"/>
</selector>