如何设置在android中单击的列表项的背景颜色?

时间:2013-06-06 11:03:39

标签: android listview background selection

我创建了一个列表视图。当我点击列表中的任何项目时我想设置它的背景。当我点击之前删除的其他项目背景并设置为其他。我可以实现这一点。我尝试了几种方法。我尝试过使用选择器和其他方法。 代码段如下:_

<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">

<item
    android:state_pressed="true"
    android:drawable="@color/selectedItem" />
<item
    android:state_focused="true"
    android:drawable="@color/GREEN" />
<item
    android:drawable="@color/BLACK" />

和活动代码

bookListView = (ListView) findViewById(R.id.list_books);
/*  selectedView = null;
    bookListView.invalidate();*/
    bookListView.setSelector( R.drawable.list_selector);

1 个答案:

答案 0 :(得分:0)

你可以这样做:

    OnItemClickListener listViewOnItemClick = new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> adapter, View arg1, int position, long id) {
                // We store the current position of the selected item
                mSelectedItem = position;
                // We refresh a custom adapter
                mAdapter.notifyDataSetChanged();
            }
        }
    };

在自定义适配器中,使用以下命令覆盖getView方法:

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            final View view = View.inflate(mContext, R.layout.item_list, null);

            if (position == mSelectedItem) {
                //Set active style
            }

            return view;
        }