设置OnClickListener时,Android ListView不会突出显示

Luc*_*cci 5 user-interface android android-listview

我有一个ListView填充自定义XML ListItems,这是XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="?android:attr/listPreferredItemHeight"
                android:padding="6dip">
...
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

listView在屏幕上正确显示,如果我单击或按住某个项目,它将变为蓝色(我正在使用Holo Light主题)

当我尝试将OnClickListener分配给视图时,问题就来了,我的Activity中的getView内部扩展了BaseAdapter:

@Override
public View getView(int position, @Nullable View convertView, ViewGroup parent) {
    ...
    convertView = InflateUtils.inflate(mContext, R.layout.list_item);
    ...
    convertView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(mContext, "Test", 2000).show();
        }
    });
...
}
Run Code Online (Sandbox Code Playgroud)

执行此操作后,列表项高亮颜色不再显示,当我单击或按住列表项时,它的背景保持白色,无论如何onClickListener完全正常工作.

您是否有任何建议在保持HoloLight的默认样式的同时获得高光颜色?

Iva*_*sov 3

OnItemClickListener您可能希望在项目视图本身上使用ListView,而不是单独的单击侦听器。

另外,突出显示问题已经在这里描述了:Android listview不再突出显示选择onclick