Android:禁用ListView选择

Jac*_*ble 21 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);
        }
    }
Run Code Online (Sandbox Code Playgroud)

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

小智 32

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

ListView
Run Code Online (Sandbox Code Playgroud)

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

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

  • 如果您不想,则无需使用ArrayAdapter.只需覆盖您自己的自定义适配器上的isEnabled方法,就可以了! (5认同)

小智 25

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

android:listSelector="@android:color/transparent"               
android:cacheColorHint="@android:color/transparent"
Run Code Online (Sandbox Code Playgroud)