Android中的自定义按钮不保存状态

时间:2011-02-07 00:19:26

标签: android android-widget android-layout

我创建了一个自定义Button,如下所示。

file:buttoncontrol.xml

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/greendot"
          android:state_pressed="true" />
    <item android:drawable="@drawable/reddot" />
</selector>
布局文件中的

..我用过

    <Button
     ...
        android:background="@drawable/buttoncontrol"></Button>

当我尝试运行程序时,布局显示带有reddot的按钮(预期结果)。当我按下按钮时,它会变为绿色,直到我释放按键。如何在下次点击之前将其设为绿色。更多切换行为。

我也在切换按钮中尝试了相同的xml文件。结果相同。

除此之外(用于测试),我还尝试在活动中添加以下代码。仍然没有得到理想的结果。 (这是拯救国家)

...under onClick of  Button/ToggleButton
buttonControl.setPressed(true);

有什么建议吗?我的偏好是避免以编程方式控制状态。即我可以随时保留这些图像并使用buttonContol.setBackgroundDrawable作为按钮

由于

2 个答案:

答案 0 :(得分:0)

我通过将android:state_pressed =“true”更改为android:state_checked =“true”来使ToggleButton工作。

但问题仍然存在于Button。如何使按钮做类似的活动?特别是当有超过2个州时。

答案 1 :(得分:0)

标准按钮没有持久状态的概念。您必须创建一个跟踪各种状态的Button的自定义实现。对不起,但没有办法解决它。