安卓UI:Switch和ToggleButton

news2024/12/25 0:57:01

目录

一、Switch和ToggleButton介绍

  Switch常用属性:

  ToggleButton属性:

二、Switch和ToggleButton常用方法

    Switch常用方法:

   ToggleButton常用方法:

三、Switch和ToggleButton的使用 

MainActivity:

activity_main: 

运行效果:

一、Switch和ToggleButton介绍

         安卓 Switch 是一个常用的开关控件,用于在两个互斥的状态(开/关)之间进行切换。Switch 继承自 CompoundButton 类,可以在用户界面中显示一个开关按钮,并且可以处理用户的点击事件。它由一个可滑动的滑块和一个表示开/关状态的文本组成。

   ToggleButton 是 Android 中的一个可切换状态的按钮控件。它可以在两种状态(开启和关闭)之间进行切换,并显示相应的视觉反馈。

  Switch常用属性:

  • android:textOnandroid:textOff: 设置 Switch 在开启状态和关闭状态时显示的文本。
  • android:checked: 设置 Switch 的初始选中状态,值为 "true" 表示选中,值为 "false" 表示未选中。
  • android:thumb: 设置 Switch 的滑块(滑动按钮)的样式,可以是一个颜色、形状或者自定义的 Drawable 资源。
  • android:thumbTint: 设置 Switch 滑块的颜色。
  • android:thumbTintMode: 设置 Switch 滑块的颜色模式。
  • android:track: 设置 Switch 的背景轨道样式,可以是一个颜色、形状或者自定义的 Drawable 资源。
  • android:trackTint: 设置 Switch 背景轨道的颜色。
  • android:trackTintMode: 设置 Switch 背景轨道的颜色模式。
  • android:showText: 设置是否显示 Switch 开关状态的文本,默认为 true。
  • android:switchMinWidth: 设置 Switch 控件的最小宽度。
  • android:switchTextAppearance: 设置 Switch 文本的样式。

  ToggleButton属性:

  • android:textOn:开启状态下显示的文本标签。
  • android:textOff:关闭状态下显示的文本标签。
  • android:buttonDrawable:Toggle 按钮的图标,可以是一个 Drawable 资源。
  • android:background:ToggleButton 的背景,可以是一个 Drawable 资源。
  • android:textColor:ToggleButton 的文本颜色。
  • android:textAppearance:ToggleButton 的文本外观样式。

二、Switch和ToggleButton常用方法

    Switch常用方法:

  • setChecked(boolean checked): 设置 Switch 的选中状态,参数为 true 表示选中,参数为 false 表示未选中。
  • isChecked(): 获取 Switch 的当前选中状态,返回值为 true 表示选中,返回值为 false 表示未选中。
  • setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener listener): 设置 Switch 的状态改变监听器,用于处理开关状态的改变事件。
  • setTextOn(CharSequence textOn): 设置 Switch 开启状态时的文本。
  • setTextOff(CharSequence textOff): 设置 Switch 关闭状态时的文本。
  • setThumbDrawable(Drawable thumb): 设置 Switch 的滑块样式。
  • setTrackDrawable(Drawable track): 设置 Switch 的背景轨道样式。
  • setOnCheckedChangeListener():监听Switch状态。

   ToggleButton常用方法:

  • setChecked(boolean checked):设置 ToggleButton 的状态,传入 true 表示开启状态,false 表示关闭状态。
  • isChecked():获取当前 ToggleButton 的状态,返回 true 表示开启状态,false 表示关闭状态。
  • setTextOn(CharSequence text):设置开启状态下的文本标签。
  • setTextOff(CharSequence text):设置关闭状态下的文本标签。
  • setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener listener):设置 ToggleButton 的状态监听器,当状态发生改变时调用相应的方法。
  • setButtonDrawable(Drawable drawable):设置 ToggleButton 的图标,可以是一个 Drawable 对象。
  • setBackground(Drawable background):设置 ToggleButton 的背景,可以是一个 Drawable 对象。
  • setTextColor(int color):设置 ToggleButton 的文本颜色。
  • setTextAppearance(Context context, int resId):设置 ToggleButton 的文本外观样式,通过指定资源 ID。

三、Switch和ToggleButton的使用 

MainActivity:


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Switch switchButton = findViewById(R.id.switchButton);
        ToggleButton toggleButton = findViewById(R.id.toggleButton);
//        switchButton.setChecked(true); // 设置为选中状态
        switchButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // 处理开关状态改变事件
                if (isChecked) {
                    toggleButton.setChecked(true);
                    Toast.makeText(MainActivity.this, "开关打开!", Toast.LENGTH_SHORT).show();
                } else {
                    // Switch 切换到未选中状态
                    toggleButton.setChecked(false);
                    Toast.makeText(MainActivity.this, "开关关闭!", Toast.LENGTH_SHORT).show();
                }
            }
        });
        toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    switchButton.setChecked(true);
                    Toast.makeText(MainActivity.this, "开关打开!", Toast.LENGTH_SHORT).show();
                } else {
                    switchButton.setChecked(false);
                    Toast.makeText(MainActivity.this, "开关关闭!", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }


}

activity_main: 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

   <Switch
       android:id="@+id/switchButton"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textOn="ON"
       android:textOff="OFF"
       android:textColor="@color/black"
       android:checked="false"
       android:showText="true"
       android:switchMinWidth="100dp"
       android:layout_gravity="center"
      />
   <ToggleButton
       android:layout_gravity="center"
       android:id="@+id/toggleButton"
       android:layout_width="100dp"
       android:layout_height="100dp"
       android:textOn="开启"
       android:textOff="关闭"
        />




</LinearLayout>

运行效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/758483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【代码随想录 | Leetcode | 第四天】数组 | 螺旋矩阵 | 59

前言 欢迎来到小K的Leetcode|代码随想录|专题化专栏&#xff0c;今天将为大家带来螺旋矩阵的分享✨ 目录 前言59. 螺旋矩阵 II总结 59. 螺旋矩阵 II 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 …

【C语言进阶(八)】动态内存管理

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C语言学习分享⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多C语言知识   &#x1f51d;&#x1f51d; 动态内存规划 1. 前言2. 为什么要学…

ElasticSearch索引(index)当中的增删改查操作

文章目录 一、创建索引&#xff08;Create Index&#xff09;&#xff1a;二、更新索引的设置&#xff08;Update Index Settings&#xff09;&#xff1a;三、获取当前索引的设置&#xff08;Get Index Settings&#xff09;&#xff1a;四、删除索引&#xff08;Delete Index…

Python(十三)数据类型——整数类型

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

N!9个OA高危漏洞利用工具v1.1.6

工具介绍 该工具使用了ExpDemo-JavaFX项目&#xff0c;保留了核心的数据包请求接口&#xff0c;使用jdk1.8环境开发。目前只编写了oa系列&#xff0c;对相关漏洞进行复现和分析&#xff0c;极力避免exp的误报和有效性。 关注【Hack分享吧】工众号&#xff0c;回复关键字【2305…

基于linux下的高并发服务器开发(第一章)- fcntl函数

13 / fcntl函数 #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd, ...); 参数&#xff1a; fd : 表示需要操作的文件描述符 cmd: 表示对文件描述符进行如何操作 - F_DUPFD : 复制文件描述符,复制的是第一个参数fd&#xff0c; …

【运维工程师学习六】LAM部署搭建个人Discuz论坛

【运维工程师学习六】LAM部署搭建个人Discuz论坛 1、先卸载Mariadb再安装Mysql2、MySQL官网rpm包下载3、在rpm包路径下安装 YUM Repo 文件4、更新软件仓库本地数据库信息5、开始部署——php的安装6、搜索yum包7、开始部署——配置apache以支持php&#xff08;1&#xff09;配置…

Spring MVC 运行原理 【深度理解】

什么是MVC&#xff1f; MVC 是 Model、View 和 Controller 的缩写&#xff0c;分别代表 Web 应用程序中的 3 种职责&#xff0c;MVC是一种软件设计规范。它将业务逻辑、数据、显示分离的方法来组织代码&#xff0c;降低了视图与业务逻辑之间的双向耦合。 Model(模型)&#xf…

newMap和newSet

newMap Map 对象存有键值对&#xff0c;其中的键可以是任何数据类型。Map字典是以[键&#xff0c;值]的形式存储** 1:键值对的键类型比较灵活 可以用任意类型的变量来做键名&#xff0c; 2 遍历键值对 for … in循环还有一些限制&#xff1a;它仅仅遍历可枚举属性、非Symb…

进程概念与进程控制

1.冯诺伊曼体系结构: 数据按照二进制存储 数据存储在存储器&#xff08;内存&#xff09;当中 输入设备 存储器 中央处理器 输出设备 2.操作系统&#xff1a; 先组织&#xff0c;再描述 系统调用与库函数&#xff1a; 系统调用 系统调用指运行在用户空间的程序向操作系统内核…

小程序-----vant weapp安装以及自定义主题色

首先查看小程序根目录中是否存在package.json文件 没有的话,在项目根目录打开cmd,输入npm init -y初始化一下,初始化一个包管理 安装vant weapp包 在根目录的cmd中输入npm i vant/weapp1.3.3 -S --production进行安装 后面可以指定版本 修改 app.json 将 app.json 中的 “…

【Python】类型注解 ③ ( 使用 # type: 类型 注释方式设置类型注解 | 类型注解是提示性而非强制性 )

文章目录 一、使用 注释语法 设置 类型注解1、使用 注释语法 设置 类型注解语法介绍2、为 基础类型变量 设置 " 类型注解 "3、为 类 的 对象类型 设置 " 类型注解 "4、为 基础容器类型变量 设置 简易 " 类型注解 "5、为 基础容器类型变量 设置 详…

Node.js下载安装和环境变量配置(详细教程)

目录 一、官网地址下载安装包 二、安装程序 三、环境配置 四、测试 五、安装淘宝镜像 5.1、附加&#xff1a;如果有出现问题的小伙伴们可以检查一下自己的配置有没有出错 一、官网地址下载安装包 https://nodejs.org/zh-cn/download/ 选择你的项目或系统对应的node.js版本…

【C++】 Qt-线程并发与线程同步

文章目录 线程并发线程同步原子访问&#xff08;InterLocked&#xff09;关键段&#xff08;Critical_Section&#xff0c;也叫临界区&#xff09;回顾单例出现的问题关键段基本使用封装关键段 Qt下的多线程多线程与进度条Qt-QThread 线程并发 我们再创建一个控制台文件命名为…

【Tauri + React 实战】VCluster - 了解技术选型与开发环境配置

VCluster A React Tauri App as visualizer of apps cluster on windows. 背景介绍 VCluster是一个在开发环境下&#xff0c;用以对一系列应用集群&#xff08;如分布式、微服务&#xff09;进行可视化管理的桌面应用程序&#xff0c;目标是实现类似 docker-compose 那样的集…

深入学习Python自定义函数

目录 0. 前言1. 最基础的自定义函数写法2. 参数传递3. 函数返回值4. 作用域5. 匿名函数6. 装饰器7. 闭包8. 生成器9. 为自定义函数写注解 0. 前言 今天来深入学习 Python 中的自定义函数&#xff0c;为的是日后能够写出时间和内存更好的优化&#xff0c;以及形成良好的编程习惯…

原型链:揭开JavaScript背后的神秘面纱

文章目录 1. 对象2. 原型&#xff08;prototype&#xff09;3. 原型链&#xff08;prototype chain&#xff09;4. 构造函数&#xff08;constructor&#xff09;5. prototype 属性6. 实例&#xff08;instance&#xff09;7. 原型继承&#xff08;prototype inheritance&#…

HFSS仿真微带型威尔金森功分器学习笔记

HFSS仿真微带型威尔金森功分器 文章目录 HFSS仿真微带型威尔金森功分器1、 求解器设置2、 建模3、 边界条件设置4、 激励方式设置5、 扫频设置6、 设计检查&#xff0c;仿真分析7、 数据后处理 设计要求&#xff1a; 频带范围0.9~1.1GHz输入端口的回波损耗&#xff1e;20dB频带…

STL算法篇之拷贝修改类算法

STL算法篇之拷贝修改类算法 拷贝类算法copy与copy_backwardremove与remove_copyremove_if与remove_copy_if 修改类算法replace与replace_copyreplace_if与replace_copy_ifiter_swap与swap与swap_range、unique与unique_copy 拷贝类算法 1.copy 区间拷贝 2.copy_backward 逆向拷…

Redis双写一致性?

双写一致性&#xff1a;当修改了数据库的数据也要同时更新缓存的数据&#xff0c;缓存和数据库的数据要保持一致。 Redis作为缓存&#xff0c;mysql的数据如何与redis进行同步呢&#xff1f;&#xff08;双写一致性&#xff09; 1.我们当时做排行榜业务时&#xff0c;把历史榜…