学Android---ToggleButton

1、什么是ToggleButton:
Toggle,意思是切换,转换。ToggleButton自然就表示切换按钮了。它有两种状态,分别是选中和未选中,并且需要为不同的状态设置不同的显示文本。就像是手电筒的开关按钮一样,初始状态为关,按下按钮,手电打开,再按下又切换为关闭状态。

2、ToggleButton常用属性:
android:checked = “true” //表示启动程序时即为选中状态
android:textOff = “关” //状态为关时所显示的文字
android:textOn = “开” //状态开时所显示的文字

3、ToggleButton的实现(滑动到最后可看到效果):
(1)首先在布局中添加ToggleButton控件,为了表现开和关状态下的区别,我们再添加一个ImageView,代码如下:

    <ToggleButton
        android:id="@+id/toggleButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:textOff="柯南"
        android:textOn="犬夜叉" />  //这里我用两张图片表示开和关
        //柯南代表关,犬夜叉代表开
        //没有设置checked属性,表示启动时的默认状态为关

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/toggleButton"
        android:background="@drawable/conan" />
     //记得先将图片放到drawable文件夹下,我的图片分别命名为conan和inu

(2)配置好布局后,来到MainActivity中添加逻辑代码
首先初始化ToggleButton和ImageView并find:

    private ToggleButton togglebutton;
    private ImageView imageview;
    //初始化控件
    togglebutton = (ToggleButton)findViewById(R.id.toggleButton);
    imageview = (ImageView)findViewById(R.id.imageView);   

然后给ToggleButton设置监听器(需要注意的是这里的监听事件是onCheckedChangeListener而不是onClickListener),这里通过接口来实现:

togglebutton.setOnCheckedChangeListener(this);

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){
        /*
         * 当togglebutton被点击的时候,当前的方法会执行
         * buttonView----代表被点击控件的本身
         * isChecked----代表被点击控件的状态
         * 
         * 当点击togglebutton的时候,更换imageview的背景
         */     imageview.setBackgroundResource(isChecked?R.drawable.inu:R.drawable.conan);
}

3、下面给出MainActivity完整的代码实现:

public class MainActivity extends Activity implements OnCheckedChangeListener{

    private ToggleButton togglebutton;
    private ImageView imageview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //初始化控件
        togglebutton = (ToggleButton)findViewById(R.id.toggleButton);
        imageview = (ImageView)findViewById(R.id.imageView);
        /*
         * 给当前的togglebutton设置监听器
         */
        togglebutton.setOnCheckedChangeListener(this);
    }

    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){
        /*
         * 当togglebutton被点击的时候,当前的方法会执行
         * buttonView----代表被点击控件的本身
         * isChecked----代表被点击控件的状态
         * 
         * 当点击togglebutton的时候,更换imagebutton的背景
         */
        img.setBackgroundResource(isChecked?R.drawable.inu:R.drawable.conan);
    }    
}

最后再看一看效果,启动时默认状态为关,显示图片为柯南
这里写图片描述
按下按钮后,状态变为开,显示图片为犬夜叉
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值