【发布时间】:2013-02-14 08:05:56
【问题描述】:
我有一个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 表明它可以被点击并且在点击时它的颜色会发生变化,但是在禁用它们之后应该执行的操作是不可访问的。
【问题讨论】:
-
不确定,您是否尝试再次设置 onClickListener?如果您自动禁用可点击,它可能会被取消注册
-
@StefandeBruijn 我已经为 ListView 设置了 setOnItemClickListener,为什么还要重新设置?
标签: android listview android-view listitem viewgroup