Android Toggle Spinner

时间:2013-04-13 15:57:37

标签: android android-widget toggle

我想以微调器(或老虎机)的形式实现切换按钮。基本上它将包含一个文本为OFF的大矩形,当用户点击它时,单词ON将被动画到矩形而不是关闭。有没有一种简单的方法可以做到这一点,或者你知道一个可以做到这一点的小部件

我做了什么

我有两个图像,每个图像代表切换按钮可以处于的状态(即ON和OFF)。然后我创建了一个可绘制的XML文件:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/on" android:state_checked="true" android:state_pressed="true"/>
    <item android:drawable="@drawable/on" android:state_checked="true" android:state_focused="false"/>
    <item android:drawable="@drawable/off" android:state_checked="false" android:state_pressed="true"/>
    <item android:drawable="@drawable/off" android:state_checked="false" android:state_focused="false"/>

</selector>

然后我将ToggleButton的背景设置为XML drawable:

<ToggleButton
    android:id="@+id/toggleButton1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:background="@drawable/btntoggle_selector"
    android:textColor="@android:color/white"
    android:textOff="OFF"
    android:textOn="ON " />

enter image description here

1 个答案:

答案 0 :(得分:1)

如果您想以编程方式更改按钮的状态,则需要在切换按钮上使用方法setChecked

// Declare button
private ToggleButton myButton;
...   
// Initialise button
myButton = (ToggleButton) findViewById(R.id.myButton);
...
// Sets button text as "OFF" and "ON"
myButton.setText("OFF");
myButton.setText("ON");
myButton.setChecked(false);
...
// Set an on click listener
myButton.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick() {
        myButton.setChecked(true);

        // CALL WHATEVER METHOD IS SUPPOSED TO BE CALLED WHEN BUTTON IS PRESSED

    }
});