【问题标题】: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);
【解决方案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”导航抽屉,现在该项目未启用。
唯一不改变颜色的东西,以提高可用性。