Android:禁用ListView选择

时间:2011-06-04 13:56:02

标签: android listview

我有一个listView,当用户选择一个项目时,我会重新显示正确的答案。但是,此时我想禁用列表视图项的选择;用户只能通过按钮进入下一个问题。但是,即使我禁用了这样的项目:

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

...当用户选择时,它仍会突出显示选择。有什么想法吗?

4 个答案:

答案 0 :(得分:32)

滚动被锁定的原因是因为您正在设置

ListView

我找到了一种在不锁定滚动条的情况下禁用突出显示的方法。您需要在ListAdapter中进行设置,如下所示:

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

答案 1 :(得分:23)

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

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

答案 2 :(得分:2)

我只是用这个隐藏了所选项目:

listView.setSelector(new ColorDrawable(0));

然后再通过恢复之前使用的任何绘图来再次显示它:

wifiSsid.setSelector(R.drawable.listview_selector);

答案 3 :(得分:2)

我使用了android:choiceMode="none"作为记录here