Android在Activity中禁用listview的元素

时间:2014-12-20 01:18:05

标签: android android-activity android-listview

我有一个问题。

我实现了一个带有listView的导航抽屉,我希望禁用此列表视图的项目。我希望用户看到项目禁用,因为它采用不同的颜色,并且您无法单击它。 问题是,只有活动知道什么时候被禁用。

一个明显的按钮示例:

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

现在按钮会改变颜色,你无法点击它。

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

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

但这不起作用。

我该怎么办?

感谢。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我的解决方案:

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

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"导航抽屉,现在该项目不启用。 唯一不改变颜色的东西,更具可用性。