我有一个扩展了BaseActivity
的Activity
,所有其他活动都扩展了该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();
}