【问题标题】:Android disable an element of listview in ActivityAndroid在Activity中禁用listview的一个元素
【发布时间】:2014-12-20 01:18:04
【问题描述】:

我有问题。

我用 listView 实现了一个导航抽屉,我想禁用这个 listview 的一个项目。我希望用户看到该项目被禁用,因为它采用不同的颜色,并且您无法单击它。 问题是,只有 Activity 知道它何时被禁用。

一个明显的按钮示例:

Button but =...
but.setEnables(false);

现在按钮改变了颜色,你不能点击它。

我想对 listView 的元素做同样的事情。 我试过这个:

nameListView.getChildAt(position).setEnabled(false);

但这不起作用。

我能做什么?

谢谢。

【问题讨论】:

    标签: android android-activity android-listview


    【解决方案1】:

    如何使用适配器?像这样:

    nameListView.getAdapter().getItem(position).setEnabled(false);
    

    【讨论】:

    • 谢谢@muumuutech 你帮我找到了路
    【解决方案2】:

    我的解决方案:

    在代表导航抽屉项目的类中,我添加了一个布尔属性(启用)

    public class NavDrawerItem {
    
         ....
         private boolean enable;
    
         .....
    
         public boolean isEnable() {
              return enable;
         }
    
         public void setEnable(boolean enable) {
              this.enable = enable;
         }
     }
    

    在我的适配器中,覆盖 te 方法 isEnable(position):

    @Override
    public boolean isEnabled(int position) {
        return getItem(position).isEnable();
    };
    

    现在,在我的活动中,当导航抽屉打开时,执行此方法:

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
    
        NavDrawerItem itemToDisable = (NavDrawerItem) mDrawerList.getAdapter().getItem(0);
        itemToDisable.setEnable(centroComercial!=null); //Condition to disable item
    
        return super.onPrepareOptionsMenu(menu);
    }
    

    在此方法之前,系统“redrawer”导航抽屉,现在该项目未启用。 唯一不改变颜色的东西,以提高可用性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      • 2022-01-22
      • 2023-04-02
      • 1970-01-01
      • 2016-11-07
      相关资源
      最近更新 更多