2

我有一个BaseActivitywhich extendsActivity和所有其他活动都扩展了 this BaseActivity

我所做的是处于我的应用程序状态,我想禁用屏幕上的所有项目,BaseActivity然后使用以下代码再次启用它们:

private void DisableChildClickEvents(ViewGroup viewGroup, boolean enabled) {
    for (int i = 0; i < viewGroup.getChildCount(); i++) {
        View childView = viewGroup.getChildAt(i);
        childView.setClickable(enabled);
        childView.setEnabled(enabled);
        if (childView instanceof ViewGroup) {
            DisableChildClickEvents((ViewGroup)childView, enabled);
        }
    }
}

ListView在其中一个活动中遇到的问题是此代码禁用它并单击它的项目,但它无法再次单击它们。这ListItem表明它可以被单击并且在单击时它的颜色会发生变化,但是在禁用它们之后应该执行的操作是不可访问的。

4

1 回答 1

1

试试这个:

if (childView instanceof ListView) {
               if (enabled == true) {
                   ListView list = (ListView) childView;
                   list.getOnItemClickListener();
               }
于 2013-02-14T08:52:43.897 回答