0

早上好,

我有一个带有 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,我会得到一个似乎可以工作的“不同”句柄......????

4

2 回答 2

0

好的,所以你可以做的是声明一个变量 count 并在单击 f 按钮上增加 count 的值。然后单击 Back 按钮减少 count 的值并给出条件,而 count<0 的任务后退按钮没有做其他什么

于 2012-11-16T19:32:56.240 回答
0

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

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

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

于 2012-11-17T00:39:15.160 回答