【发布时间】:2012-11-16 19:07:13
【问题描述】:
早安,
我有一个带有 prev 的项目列表。 & 下一步按钮。当用户位于列表的开头时,上一个按钮被禁用。单击下一步会将它们带到下一条记录,并且我的单击处理程序将 prev 按钮设置为 true。但是在模拟器中它不显示启用的按钮。单击下一步将我移动到第三条记录,并且处理程序再次将 prev 按钮设置为启用,但这次它确实在模拟器中启用。我在这里抓住了稻草,但我需要无效并重绘还是什么?我不明白为什么这样一个基本任务不起作用。
在 XML 中:
<Button
android:id="@+id/btn_PrevLift"
...
android:enabled="false"
android:onClick="btn_PrevLiftClick" />
在处理程序代码中:
private void UpdateNavButtonStatus(int z)
{
...
btn_Next.setEnabled(true);
btn_Prev.setEnabled(true);
....
}
不只是为了向您展示我对自己在做什么知之甚少,为什么当我在 Eclipse 调试中查看变量值时,我在任何状态下都看不到启用的属性???
更多信息 至少对我来说很奇怪。如果我从使用 XML 定义的事件处理程序转变为以编程方式定义如下,它会很好用!!!???
btn_Nxt.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
//Call helper methods etc...
}
});
我想我有,但不确定为什么
因此,当我尝试获取 Button 对象的句柄时,我使用的是 View.findViewById(etc)。当我从 XML 更改为以编程方式声明的事件处理程序时,我使用了 ViewGroup.findViewById。如果我使用 ViewGroup 恢复到 xml,我会得到一个似乎可以工作的“不同”句柄......????
【问题讨论】:
-
对于它的价值,“启用”在
mViewFlags中存储为一个位明智的值。发布更多UpdateNavButtonStatus(int z)并仔细检查z是否是您的想法。 -
你定义了按钮的状态吗?
-
你能展示更多你的代码吗?听起来那里出了点问题。
-
FWIW mViewFlags 看起来像这样:mViewFlags 402669601
标签: android android-layout android-emulator