如何禁用Android中的ListView



我有一个我的listView,我在数据库中填充了值。如果数据库为空,则将listView的第一个项目设置为"无数据"。我想禁用单击此项目。我已经使用了ArrayAdapter。我尝试制作AlealLitemsenable,Isenabled False,但这是没有用的。即使我设置了ListView的可见性并将其设置为False,也没有用。而且我将OnItemClickListener的代码放在其他条件下,即使这也不能阻止列表项目可单击。有人有其他解决方案吗?谢谢!

在您的自定义ArrayAdapter使用ISENABLED函数中以返回false:

@Override
public boolean isEnabled(int position) {
    return false;
}

总是为我工作。

非常容易!list.setEnabled(false)

您可以按显示的空视图设置空视图,并且将自动处理:

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="vertical"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:paddingLeft="8dp"
         android:paddingRight="8dp">
     <ListView android:id="@android:id/list"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:background="#00FF00"
               android:layout_weight="1"
               android:drawSelectorOnTop="false"/>
     <TextView android:id="@android:id/empty"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:background="#FF0000"
               android:text="No data"/>
 </LinearLayout>

为该列表创建适配器,然后覆盖此方法

public boolean isEnabled(int position);

当您要禁用单击

时,请返回false

尝试在listView上设置这两个属性:

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

也许您可以使用if语句检查onclick中的listView条目的内容,如果其中包含'no data'不做任何事情Div>

我根据我的要求确实喜欢这个,希望它可以帮助您一些

@Override
public boolean isEnabled(int position) {
        if(data.get(position).isClickable==false)
        {
            return false;
        }
        return super.isEnabled(position);
    }

相关内容

  • 没有找到相关文章

最新更新