我想在列表视图选择项目上设置颜色。我已经设置了列表视图项目和颜色。
{
setListAdapter(new ArrayAdapter<String>(getActivity(),
R.layout.simple_list_item_checkable_1, android.R.id.text1,Data.PERSON));
ListView listView = getListView();
listView.setTextFilterEnabled(true);
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
View listItem = parent.getChildAt(i);
if (listItem != null)
parent.setBackgroundColor(0x00000000);
view.setBackgroundColor(Color.RED);
}
});
}
答案 0 :(得分:0)
您可以使用:
在包含listView的XML中声明以下属性。
android:listSelector="#AF5c12" // any color code to set color to selected item from list.
答案 1 :(得分:0)
使用listSelector
属性设置所选的项目颜色:
<ListView android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:divider="@null"
android:dividerHeight="0dip"
android:listSelector="@drawable/list_selector" />
答案 2 :(得分:0)
您可以在xml中设置所选的项目颜色:
<ListView
android:listSelector="@android:color/holo_red_dark"
</ListView
答案 3 :(得分:0)
这样做:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape >
<solid android:color="#929292" />
</shape>
</item>
<item>
<shape >
<solid android:color="#FFFFFF" />
</shape>
</item>
</selector>
使用此属性android:state_pressed="true"
,当您按下它时,它将为所选项目生成颜色。
答案 4 :(得分:0)
最低API级别 11 : 创建一个属性为 android:state_activated = true / false 的选择器文件 并将其设置为列表项的背景。 还包括代码: listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
对于其他API级别: 您必须创建一个自定义数组适配器并在其中添加以下方法。 最初 selectedPosition = -1; //这样做是为了在第一次加载列表时删除选择。
public void setseletion(int position) {
this.selectedPosition = position; // selected position in the list
notifyDataSetChanged();
}
在getView()方法中,除了设置列表外还包括
public View getView(int position, View convertView, ViewGroup parent) {
if (position == selectedPosition) {
convertView.setBackgroundColor(getResources().getColor(
R.color.gray));
} else {
convertView.setBackgroundColor(getResources().getColor(
R.color.transparent));
}
最后在列表视图的OnItemClickListener中包含它。
public void onItemClick(AdapterView<?> arg0, View view, int position,
long arg3) {
MyArrayAdapter adapter = (MyArrayAdapter) listView.getAdapter();
adapter.setseletion(position);
}