Android在活动中禁用listview元素
我有个问题 我用listView实现了一个导航抽屉,我想禁用这个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); 但这
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你帮我找到了方法