Android ToggleButton 开关按钮

Android ToggleButton (开关按钮) 允许我们在两个状态之间切换,有点类似于电灯的开关

ToggleButton

ToggleButtonCheckBox 一样都继承自 CompoundButton ,所以都有 Button 的属性和方法,又有 CompoundButton 的属性 android:checked

不过,ToggleButton 既然叫开关按钮,那么就一定有属性来设置 开状态关状态 的文本

属性 说明
android:disabledAlpha ToggleButton 处于 禁用 时的透明度
android:textOff ToggleButton 处于 时的文本
android:textOn ToggleButton 处于 时的文本

我们写一个简单的 demo 来演示下 ToggleButton

  1. 创建一个 空的 Android 项目 cn.twle.android.ToggleButton

  2. 修改 activity_main.xml 添加几个 ToggleButton

    <?xml version="1.0" encoding="utf-8" ?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="8dp" 
        android:orientation="horizontal" >
    
        <ToggleButton 
            android:id="@+id/power"
            android:text="Power"
            android:textOn="开灯"
            android:textOff="关灯"
            android:checked="true" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" />
    
        <ToggleButton 
            android:id="@+id/power2"
            android:text="Power"
            android:textOn="开灯"
            android:textOff="关灯" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" />
    
    </LinearLayout>
    

运行范例,显示如下

改变 ToggleButton 的状态和文本

ToggleButton 提供了一些方法用来改变或获取自身的状态和开关时的文本

方法 说明
getTextOff() 获取 ToggleButton 关时显示的文本
getTextOn() 获取 ToggleButton 开时显示的文本
setChecked(boolean checked) 设置 ToggleButton 是否选中
setTextOff(CharSequence textOff) 设置 ToggleButton 关时显示的文本
setTextOn(CharSequence textOn) 设置 ToggleButton 开时显示的文本
toggle() 改变 ToggleButton 的开关状态
事件 说明
CompoundButton.OnCheckedChangeListener ToggleButton 的开关状态改变时触发

现在我们写一个 demo 来监听 ToggleButton 开关状态的改变

  1. 复用上面的 demo

  2. 修改 MainActivity.javaToggleButton 添加一个事件监听器 OnCheckedChangeListener

    package cn.twle.android.togglebutton;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    
    import android.widget.CompoundButton;
    import android.widget.ToggleButton;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener{
    
        private ToggleButton power;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            power = (ToggleButton) findViewById(R.id.power);
    
            power.setOnCheckedChangeListener(this);
    
        }
    
        @Override 
        public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
           if(compoundButton.isChecked())
                Toast.makeText(this,compoundButton.getText().toString(),Toast.LENGTH_SHORT).show();
        }
    }
    

官方文档

  1. ToggleButton

Android 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.