Android:禁用ListViewselect

我有一个listView,我重新显示与用户select一个项目时突出显示的正确答案。 然而,在这一点上,我想禁用列表视图项的select; 用户只能按下一个button才能进入下一个问题。 但是,即使我禁用这样的项目:

private void disableItemSelection() { ListView lv = getListView(); for (int i = 0; i < lv.getChildCount(); i++){ View v = lv.getChildAt(i); v.setEnabled(false); } } 

…当用户select它时,它仍然突出显示select。 有什么想法吗?

滚动被locking的原因是因为你正在设置

 ListView 

我find了一种禁用突出显示而不locking滚动的方法。 你需要在ListAdapter中设置它,如下所示:

 ArrayAdapter<String> myList = new ArrayAdapter<String>(this, R.layout.list_item, strText) { public boolean isEnabled(int position) { return false; } }; 

您可以将属性添加到Listview XML布局以禁用多个高亮行

 android:listSelector="@android:color/transparent" android:cacheColorHint="@android:color/transparent" 

我只是用这个隐藏选定的项目:

 listView.setSelector(new ColorDrawable(0)); 

然后你再次显示它恢复到以前使用的任何drawable:

 wifiSsid.setSelector(R.drawable.listview_selector); 

我使用了android: choiceMode="none" ,如此处所述 。