ToggleButton和Switch

状态开关ToggleButton与开关switch也是由button按钮派生出来的,因此他们的本质也是按钮,button支持的各种属性,方法toggleButton和switch也适用。

ToggleButton常用的属性:

android:textOff:按钮关闭时显示的文本;
android:textOn:按钮开启时显示的文本;

Switch也用于开关按钮。Switch和ToggleButton稍有区别:ToggleButton是按下弹起的开关,而Switch是左右滑动的开关。

开关监听为:setOnCheckedChangeListener,覆写onCheckedChanged(CompoundButton buttonView, boolean isChecked)方法,其中isChecked表示是否选中。

layout文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"> <ToggleButton
android:id="@+id/tbtn_open"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn="开"
android:textOff="关"
android:checked="true"/> <Switch
android:id="@+id/sw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tbtn_open"
android:layout_marginTop="20dp"
android:checked="true"/> </RelativeLayout>

Activity

public class ToggleButtonActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener{

    private ToggleButton mBtnopen;
private Switch mBtnsw; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_toggle_button); mBtnopen = findViewById(R.id.tbtn_open);
mBtnsw = findViewById(R.id.sw);
mBtnopen.setOnCheckedChangeListener(this);
mBtnsw.setOnCheckedChangeListener(this); } @Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
switch (compoundButton.getId()){
case R.id.tbtn_open:
if(compoundButton.isChecked()) Toast.makeText(this,"开",Toast.LENGTH_SHORT).show();
else Toast.makeText(this,"关",Toast.LENGTH_SHORT).show();
break;
case R.id.sw:
if(compoundButton.isChecked()) Toast.makeText(this,"开关:ON",Toast.LENGTH_SHORT).show();
else Toast.makeText(this,"开关:OFF",Toast.LENGTH_SHORT).show();
break; }
}
}

效果图

    

    

最新文章

  1. Myeclipse+AJAX+Servlet
  2. information_schema系列八(事物,锁)
  3. Android Fragment 你应该知道的一切
  4. python面向对象(上)
  5. Asp.net MVC集成Google Calendar API(附Demo源码)
  6. 非常简单的oracle和mysql数据互传
  7. Kafka设计解析(八)- Exactly Once语义与事务机制原理
  8. React教程(一) React介绍与搭建
  9. golang 如何将imagemagick 和golang 打包到docker 环境中
  10. PATH环境变量
  11. PowerDesigner 16.5 使用VBScript脚本从Excel导入物理数据模型
  12. luogu 2569 股票交易 单调队列dp
  13. PyCharm2018 安装
  14. core net 实现post 跟get
  15. Pycharm(一)下载安装
  16. ThreadLocal理解
  17. mac下PHPStorm2018.2破解教程
  18. Android—— Intent参数this问题
  19. PHP面试专用笔记精简版
  20. day 3 创建窗口,移动-函数版

热门文章

  1. 【Python】字符串操作符
  2. Oracle用户权限授权以及索引、同义词、分区
  3. Python之旅第四天(列表、元祖、字典和习题)
  4. JSON解析及数据库操作实战篇
  5. 基于Docker的Mysql Cluster集群
  6. Vue+ElementUI重置表单数据至初始值
  7. koa2第一天 安装koa2
  8. 用git无法连接github的解决方法
  9. winform学习(3)窗体事件
  10. hdu1695(莫比乌斯反演+容斥)