Android在活动中禁用listview元素

Android在活动中禁用listview元素,android,android-activity,android-listview,Android,Android Activity,Android Listview,我有个问题 我用listView实现了一个导航抽屉,我想禁用这个listView的一个项。我希望用户看到项目禁用,因为它采用不同的颜色,您不能单击它。 问题是,只有活动知道何时禁用它 按钮的一个明显示例: Button but =... but.setEnables(false); 现在按钮改变了颜色,你不能点击它 我希望对listView的一个元素执行相同的操作。 我试着这样做: nameListView.getChildAt(position).setEnabled(false); 但这

我有个问题

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

按钮的一个明显示例:

Button but =...
but.setEnables(false);
现在按钮改变了颜色,你不能点击它

我希望对listView的一个元素执行相同的操作。 我试着这样做:

nameListView.getChildAt(position).setEnabled(false);
但这不起作用

我能做什么


谢谢。

使用适配器怎么样?像这样:

nameListView.getAdapter().getItem(position).setEnabled(false);
我的解决方案:

在表示导航抽屉项的类中,我添加了一个布尔属性enable

public class NavDrawerItem {

     ....
     private boolean enable;

     .....

     public boolean isEnable() {
          return enable;
     }

     public void setEnable(boolean enable) {
          this.enable = enable;
     }
 }
在我的适配器中,重写te方法isEnableposition:

@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);
}
在此方法之前,系统会重新绘制导航抽屉,而现在该项是不启用的。
唯一一件不会改变颜色的东西,更实用。

谢谢@muumuutech你帮我找到了方法