一起学Android之ToggleButton和Switch
本文以一个简单的小例子,简述在Android开发中ToggleButton(开关按钮)和Switch(开关)的简单使用,仅供学习分享使用。
概述
ToggleButton是一个有两种状态(checked/unchecked)的按钮,经常用于开/关等场景中,默认文本显示(ON/OFF),Switch 是一个拥有两种状态的控件,具有滑动的效果。
ToggleButton
ToggleButton涉及知识点如下:
- android:textOff 设置未选中时显示的文本内容,默认为OFF。
- android:textOn 设置选中时显示的文本内容,默认为ON。
- android:disabledAlpha 控件禁用时的透明度,float类型,
- android:background 背景设置,可以用于设置一个图片或者资源文件
- setOnCheckedChangeListener 用于设置监听状态改变的事件
- OnCheckedChangeListener 状态监听事件,是一个接口,有一个函数需要实现
- onCheckedChanged(CompoundButton buttonView, boolean isChecked) 监听事件需要实现的函数
ToggleButton示例效果图如下:


ToggleButton源码
(xml)源码如下:
<TextView
android:id="@+id/tv_toggle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/sp_info"
android:textSize="15dp"
android:layout_marginBottom="10dp"
android:text="@string/tv_toggle"/>
<ToggleButton
android:id="@+id/tb_info"
android:textOff=""
android:textOn=""
android:layout_marginBottom="10dp"
android:background="@drawable/toggle_selector"
android:layout_below="@id/tv_toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
关于toggle_selector资源文件如下(资源文件中的on和off对应图片):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@drawable/on"></item>
<item android:state_checked="false" android:drawable="@drawable/off"></item>
</selector>
实现监听事件的源码如下:
mToggleButton =(ToggleButton) this.findViewById(R.id.tb_info);
mToggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
String info="当前状态是:"+(isChecked?"打开":"关闭");
Toast.makeText(MainActivity.this,info,Toast.LENGTH_LONG).show();
}
});
Switch控件
Switch涉及知识点如下:
- android:textOff 设置未选中时显示的文本内容,默认为OFF。
- android:textOn 设置选中时显示的文本内容,默认为ON。
- android:thumb:滑块的图片
- android:showText:设置on/off的时候是否显示文字,boolean
- android:splitTrack:是否设置一个间隙,让滑块与底部图片分隔,boolean
- setOnCheckedChangeListener 用于设置监听状态改变的事件
- OnCheckedChangeListener 状态监听事件,是一个接口,有一个函数需要实现
- onCheckedChanged(CompoundButton buttonView, boolean isChecked) 监听事件需要实现的函数
Switch示例效果图如下:


Switch源码
xml源码如下(其中的toggle_selector和上面一样,设置选中和未选中时的图片):
<Switch
android:id="@+id/sw_info"
android:textOff=""
android:textOn=""
android:background="@drawable/toggle_selector1"
android:track="@drawable/toggle_selector1"
android:layout_below="@id/tb_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
监听事件源码如下:
mSwitch =(Switch)this.findViewById(R.id.sw_info);
mSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
String info="当前状态是:"+(isChecked?"打开":"关闭");
Toast.makeText(MainActivity.this,info,Toast.LENGTH_LONG).show();
}
});
备注
ToggleButton和Switch是很常见的基础性控件,简单易用,场景广泛,本文旨在抛砖引玉,希望大家共同学习。
一起学Android之ToggleButton和Switch的更多相关文章
- Android的ToggleButton和Switch以及AnalogColok和DigitalColok的用法-android学习之旅(二十)
ToggleButton 和Switch简介 ToggleButton 和Switch都是继承了Button,所以他们的属性设置和Button差不多. 分别支持的属性 ToggleButton 的属性 ...
- android开关控件Switch和ToggleButton
序:今天项目中用到了开关按钮控件,查阅了一些资料特地写了这篇博客记录下. 1.Switch <Switch android:id="@+id/bt" android:layo ...
- Android零基础入门第21节:ToggleButton和Switch使用大全
原文:Android零基础入门第21节:ToggleButton和Switch使用大全 上期学习了CheckBox和RadioButton,那么本期来学习Button的另外两个子控件ToggleBut ...
- Android基础控件ToggleButton和Switch开关按钮
1.简介 ToggleButton和Switch都是开关按钮,只不过Switch要Android4.0之后才能使用! ToggleButton <!--checked 是否选择--> &l ...
- 菜鸟学Android编程——简单计算器《一》
菜鸟瞎搞,高手莫进 本人菜鸟一枚,最近在学Android编程,网上看了一些视频教程,于是想着平时手机上的计算器应该很简单,自己何不尝试着做一个呢? 于是就冒冒失失的开撸了. 简单计算器嘛,功能当然很少 ...
- ToggleButton与Switch
状态开关按钮togglebutton和开关switch 状态开关按钮togglebutton和开关switch是由button派生出来的,本质也是按钮,支持BUtton的各种属性,从功能上看,Togg ...
- 设置ToggleButton、Switch、CheckBox和RadioButton的显示效果
ToggleButton.Switch.CheckBox和RadioButton都是继承自android.widget.CompoundButton,意思是可选择的,因此它们的用法都很类似.Compo ...
- 一步一步学android控件(之六) —— MultiAutoCompleteTextView
今天学习的控件是MultiAutoCompleteTextView . 提到MultiAutoCompleteTextView 我们就自然而然地想到AutoCompleteTextView ,就想知道 ...
- android的toogleButton和switch的使用方法
这两个是button开关.监听CheckedChangeListener toggle_layout.xml: <? xml version="1.0" encoding=& ...
随机推荐
- WebWorker 简单使用方式
WebWorker 一定程度上可以算得上是浏览器中的多线程技术了,在项目中适当使用 Worker 来做一些耗时的操作能大大提高页面整体流畅度. Worker的使用也是非常简单的,通过向 Worker ...
- redis的bigkey扫描脚本
众所周知,redis里面的大key存在是非常危险的一件事情.因为最近的工作转移到中间件相关的工作,因此关注了一下bigkey的扫描方法.首先介绍一下阿里云提供的扫描脚本: 具体可见:https://y ...
- Python:logging 的巧妙设计
引言 logging 的基本用法网上很多,这里就不介绍了.在引入正文之前,先来看一个需求: 假设需要将某功能封装成类库供他人使用,如何处理类库中的日志? 数年前在一个 C# 开发的项目中,我用了这样的 ...
- 详解synchronized与Lock的区别与使用
知识点 1.线程与进程 在开始之前先把进程与线程进行区分一下,一个程序最少需要一个进程,而一个进程最少需要一个线程.关系是线程–>进程–>程序的大致组成结构.所以线程是程序执行流的最小单位 ...
- .netcore2.1使用swagger显示接口说明文档
项目之前开发完接口后,我们还需要写接口说明文档,现在有了swagger方便了很多,可以网页版直接测试,当然了也减少了我们的工作量. 使用swagger生成接口说明文档,大致需要2个步骤 1.从“管理 ...
- SQL Server 安装后部分选项初始化脚本
SQL Server安装后,根据对应的业务场景,数据库实例的部分选项需要调整,例如实例的最大内存.tempdb 文件的增长量.Job执行记录数等等,但这一步经常被大家忽略掉. 其实很多选项初始化都可以 ...
- 关于OSError: [WinError 10038] 在一个非套接字上尝试了一个操作。
在使用socket的时候,写了一个while循环,就报错了.结果如下: OSError: [WinError 10038] 在一个非套接字上尝试了一个操作. 代码 import socket impo ...
- CTF比赛 十一月场 Look 复现
拿到题吧,一般的我的操作就是,先看看审核元素有有没有什么东西,然后去御剑扫描,git泄露,备份文件泄露,不行就再去burp抓包看看头部,换方法(post换成get) 发现不明的头部,这种头部的话可能是 ...
- ABP学习笔记总汇
首先立下一个目标,未来一段时间开始学习ABP. 先立一个flag.之后会再次更新目录和文章连接 目录 1.ABP学习笔记(1)-使用mysql
- JavaSE:八种基本数据类型
变量: 程序用来存储数据的一块内存空间,程序在运行过程中可以对其存储的数据进行改变,所以叫做变量 常量:相对于变量来说,其值是不可改变的 整数类型(byte short int long) b ...