哪种按钮可以在Android中切换/更改状态?

时间:2012-02-22 21:30:09

标签: android button state

所以我有一个图像按钮,我希望它有两种状态。它将像书签按钮一样工作,有两种状态。如果用户按下按钮然后它改变了图像,如果它重新按下按钮,那么我想要原始图像。

这可能吗?使用其他类型的按钮有更简单的方法吗? 谢谢

4 个答案:

答案 0 :(得分:2)

尝试将主题更改为:“哪种按钮可以切换/更改状态?”

好像你需要ToggleBotton

<ToggleButton                  
        android:layout_width="wrap_content"
        android:layout_height="26dp"
        android:background="@color/button_colors"
        android:button="@null"
        android:textOff="@null"
        android:textOn="@null" />

此xml定义处于休息/按下状态的按钮的颜色/图像,将其放入res/color/button_colors.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false" android:drawable="@drawable/button_rest"/>
<item android:state_checked="true" android:drawable="@drawable/button_on" />    
</selector>

答案 1 :(得分:0)

是的,您也可以使用常规按钮。首先在res / drawable目录中创建一个选择器XML文件。例如:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_enabled="true" android:state_selected="true"
android:drawable="@drawable/selectedimage"/>

<item android:state_enabled="true" android:state_selected="false"
android:drawable="@drawable/notselectedimage"/>

</selector>

在布局xml的按钮定义中,您只需添加以下属性:

android:background="@drawable/myselectorxmlfile"

然后您自己以编程方式设置所选状态(在onClickListener中),按钮图像将更改背景状态。

button.setSelected(true) // or false;

答案 2 :(得分:0)

答案 3 :(得分:0)

我猜你可以使用Toggle Button并希望它能解决你的问题。 只需看看它的简单xml代码:

<ToggleButton
              android:id="@+id/tglbtn"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:textOn="ON"
              android:textOff="OFF"
              />

只需查看此链接中给出的答案: Android: Specify two different images for togglebutton using XML

另外, 我发布了一个关于Toggle Button的简单教程。如果您觉得有用,请查看我的简陋博客。这是链接:http://androiddesk.wordpress.com/2012/03/10/toggle-button-in-android/