我有一个 BaseActivity
,它扩展了 Activity
,所有其他 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);
}
}
}
我在其中一个 Activity 中有一个 ListView
的问题,这段代码禁用了它并且所有点击它的项目,但它不能再次点击它们。哪个 ListItem
显示它可以被点击并且在点击时它的颜色会发生变化,但是在禁用它们之后无法访问应该执行的操作。
最佳答案
试试这个:
if (childView instanceof ListView) {
if (enabled == true) {
ListView list = (ListView) childView;
list.getOnItemClickListener();
}
关于Android 在禁用 ListView 后启用列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14870311/