我有一个扩展了BaseActivityActivity,所有其他活动都扩展了该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表示可以单击它,并且单击时其颜色会更改,但是禁用它们后无法执行应该执行的操作。

最佳答案

尝试这个:

if (childView instanceof ListView) {
               if (enabled == true) {
                   ListView list = (ListView) childView;
                   list.getOnItemClickListener();
               }

10-05 22:56