按钮保持禁用直到第二次点击?

时间:2012-11-16 19:07:14

标签: android android-layout android-emulator

早上好,

我有一个带有prev的项目列表。 &安培;下一个按钮。当用户位于列表的开头时,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调试中的变量值时,我对我正在做什么知之甚少,我无法在任何状态下看到启用的属性???

enter image description here

更多信息 至少对我来说很奇怪。如果我从使用XML定义的事件处理程序转到下面以编程方式定义,那么它的工作原理很棒!!! ???

btn_Nxt.setOnClickListener(new OnClickListener()
        {
public void onClick(View v)
    {
        //Call helper methods etc...
    }
 });

我认为我有,但不确定为什么

因此,当我试图获取Button对象的句柄时,我使用的是View.findViewById(等)。当我从XML更改为以编程方式声明的事件处理程序时,我使用了ViewGroup.findViewById。如果我使用ViewGroup,则恢复为xml我得到一个似乎有效的“不同”句柄...... ????

2 个答案:

答案 0 :(得分:0)

好的,所以你可以做的是声明一个变量计数,然后在点击f按钮上增加count ...的值,然后点击Back按钮减少count的值并给出条件,即count&lt; 0后退按钮的任务完成其他任何事情

答案 1 :(得分:0)

我已经确定了问题,当然问题是我。我正在启用按钮,然后ListView正在更新到下一条记录。当然我的启用按钮是一个后面所以它似乎当我第二次点击按钮突然启用,但事实并非如此。当我第二次点击时,我们移动到记录三并显示已启用的记录二的按钮。

看到我的按钮是我的ListView的一部分,并且正在为每条记录绘制新按钮。 OOHHHH现在对一切行为都非常有意义。

无论如何,我将按钮从ListView布局移开,以便在用户浏览记录时保持不变。