Android控件之ToggleButton(多状态按钮)

一、概述

  ToggleButton有两种状态:选中状态和没选中状态(类似一个开关),并且需要为不同的状态设置不同的显示文本

二、ToggleButton属性

  android:checked = "true"  ——按钮的状态(true为选中(textOn),false为没有选中(textOff))

  android:textOff = "关"

  android:textOn = "开"  

三、代码演示

  1、先将下面两个图片放入到资源文件中(分别命名为off和on)

      

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ToggleButton
        android:id="@+id/toggleButton1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textOn="开"
        android:textOff="关" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/off" />
    
</LinearLayout>
package com.muke.textview_edittext;

import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.ToggleButton;
import android.app.Activity;


public class MainActivity extends Activity implements OnCheckedChangeListener{
    private ToggleButton tb;
    private ImageView img;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //第一步:初始化控件(找到需要操作的控件)
        tb = (ToggleButton) findViewById(R.id.toggleButton1);
        img = (ImageView) findViewById(R.id.imageView1);
        
        //给当前的tb控件设置监听器
        tb.setOnCheckedChangeListener(this);
        
    }
    
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        //当tb被点击的时候,当前的方法会执行
        //buttonView——代表被点击控件的本身
        //isChecked——代表被点击的控件的状态
        //当点击tb这个控件的时候更好img的src
        
        img.setImageResource(isChecked?R.drawable.on:R.drawable.off);//在java代码中设置ImageView控件的src路径(这里使用三元运算来设置图片的路径)
        
    }
}

  

原文地址:https://www.cnblogs.com/LO-ME/p/4660339.html