当前位置: 移动技术网 > IT编程>移动开发>Android > 一起学Android之ToggleButton和Switch

一起学Android之ToggleButton和Switch

2019年01月13日  | 移动技术网IT编程  | 我要评论

嗜血牙医,张献忠,陈佩斯儿子婚礼

本文以一个简单的小例子,简述在android开发中togglebutton(开关按钮)和switch(开关)的简单使用,仅供学习分享使用。

概述

togglebutton是一个有两种状态(checked/unchecked)的按钮,经常用于开/关等场景中,默认文本显示(on/off),switch 是一个拥有两种状态的控件,具有滑动的效果。

togglebutton

togglebutton涉及知识点如下:

  1. android:textoff 设置未选中时显示的文本内容,默认为off。
  2. android:texton 设置选中时显示的文本内容,默认为on。
  3. android:disabledalpha 控件禁用时的透明度,float类型,
  4. android:background 背景设置,可以用于设置一个图片或者资源文件
  5. setoncheckedchangelistener 用于设置监听状态改变的事件
  6. oncheckedchangelistener 状态监听事件,是一个接口,有一个函数需要实现
  7. oncheckedchanged(compoundbutton buttonview, boolean ischecked) 监听事件需要实现的函数

togglebutton示例效果图如下:

togglebutton源码

(xml)源码如下:

 1  <textview
 2         android:id="@+id/tv_toggle"
 3         android:layout_width="match_parent"
 4         android:layout_height="wrap_content"
 5         android:layout_below="@id/sp_info"
 6         android:textsize="15dp"
 7         android:layout_marginbottom="10dp"
 8         android:text="@string/tv_toggle"/>
 9     <togglebutton
10         android:id="@+id/tb_info"
11         android:textoff=""
12         android:texton=""
13         android:layout_marginbottom="10dp"
14         android:background="@drawable/toggle_selector"
15         android:layout_below="@id/tv_toggle"
16         android:layout_width="wrap_content"
17         android:layout_height="wrap_content"/>

关于toggle_selector资源文件如下(资源文件中的on和off对应图片):

1 <?xml version="1.0" encoding="utf-8"?>
2 <selector xmlns:android="http://schemas.android.com/apk/res/android">
3     <item android:state_checked="true" android:drawable="@drawable/on"></item>
4     <item android:state_checked="false" android:drawable="@drawable/off"></item>
5 </selector>

实现监听事件的源码如下:

1 mtogglebutton =(togglebutton) this.findviewbyid(r.id.tb_info);
2         mtogglebutton.setoncheckedchangelistener(new compoundbutton.oncheckedchangelistener() {
3             @override
4             public void oncheckedchanged(compoundbutton buttonview, boolean ischecked) {
5                 string info="当前状态是:"+(ischecked?"打开":"关闭");
6                 toast.maketext(mainactivity.this,info,toast.length_long).show();
7             }
8         });

switch控件

switch涉及知识点如下:

  1. android:textoff 设置未选中时显示的文本内容,默认为off。
  2. android:texton 设置选中时显示的文本内容,默认为on。
  3. android:thumb:滑块的图片
  4. android:showtext:设置on/off的时候是否显示文字,boolean
  5. android:splittrack:是否设置一个间隙,让滑块与底部图片分隔,boolean
  6. setoncheckedchangelistener 用于设置监听状态改变的事件
  7. oncheckedchangelistener 状态监听事件,是一个接口,有一个函数需要实现
  8. oncheckedchanged(compoundbutton buttonview, boolean ischecked) 监听事件需要实现的函数

switch示例效果图如下:

switch源码

xml源码如下(其中的toggle_selector和上面一样,设置选中和未选中时的图片):

1 <switch
2         android:id="@+id/sw_info"
3         android:textoff=""
4         android:texton=""
5         android:background="@drawable/toggle_selector1"
6         android:track="@drawable/toggle_selector1"
7         android:layout_below="@id/tb_info"
8         android:layout_width="wrap_content"
9         android:layout_height="wrap_content"/>

监听事件源码如下:

1 mswitch =(switch)this.findviewbyid(r.id.sw_info);
2         mswitch.setoncheckedchangelistener(new compoundbutton.oncheckedchangelistener() {
3             @override
4             public void oncheckedchanged(compoundbutton buttonview, boolean ischecked) {
5                 string info="当前状态是:"+(ischecked?"打开":"关闭");
6                 toast.maketext(mainactivity.this,info,toast.length_long).show();
7             }
8         });

备注

togglebutton和switch是很常见的基础性控件,简单易用,场景广泛,本文旨在抛砖引玉,希望大家共同学习。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网