switch监听android代码,Android switch当代码setCheck时,不调用onCheckedChanged
最近做项目需要使用switch控件去设置手势密码,当手动打开或者关闭switch控件时,会跳转到设置手势密码页面,并且设置成功后,会保存switch状态到文件中。每次进入手势密码页面,都去获取switch状态,然后通过setChecked设置switch状态。实际使用中发现当手动或者使用打开关闭switch时,都会进入onCheckedChanged回调方法。导致一直进入设置手势密码页面。
最开始的解决方案是设置一个标志位来进行控制,但实际调测过程中发现onCheckedChanged有时会被调用多次,导致不是每次操作都符合预期;之后找到另一种方案是onCheckedChanged中调用switch.isPressed方法,如果为true,则处理,否则当做程序处理。但当滑动打开关闭switch时不起作用。该方案应该在Radiogroup和checkbox控件有作用(未测试过)。
最终找到的解决方案是在代码调用setchecked之前unregister listener,调用完之后register listener,最后成功解决该问题。部分代码如下:
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
Intent toCreateGesturePwd = new Intent(this,
CreateGesturePasswrodActivity.class);
startActivity(toCreateGesturePwd);
}
@Override protected void onResume()
{ super.onResume();
//反注册
mGesturePwdSwitch.setOnCheckedChangeListener(null);
if (isShowGesturePwd)
{
mGesturePwdSwitch.setChecked(true);
}
else
{
mGesturePwdSwitch.setChecked(false);
}
//注册回调
mGesturePwdSwitch.setOnCheckedChangeListener(this);
}
switch监听android代码,Android switch当代码setCheck时,不调用onCheckedChanged相关推荐
- Delphi 监听安卓(Android)手机通知栏信息
Delphi 监听安卓(Android)手机通知栏信息 因为一些业务需要,我们有时候需要知道手机通知栏显示的信息,然后根据这些信息去处理一些相应的业务逻辑.如:自动监听收到的短信验证码,提取后自动填写 ...
- android监听动画完成,android判断动画已结束示例代码
添加一个动画效果 发现动画没执行完 就直接跳转或者finish掉 添加动画监听事件即可,代码如下: player.startAnimation(anim); anim.setAnimationList ...
- android 控件监听方法是,Android | Android中监听Button的实现
Android中监听Button的实现 单按钮监听 2018-04-27_061911.jpg 1.在按钮所属的父Activity里,创建按钮变量 private Button mBtnTextVie ...
- android 监听来电去电,Android监听来电和去电的实现方法
本文实例讲述了Android监听来电和去电的实现方法.分享给大家供大家参考,具体如下: 要监听android打电话和接电话,只需下面2步骤 第一步,写一个Receiver继承自BroadcastRec ...
- android 应用监听home键,Android 监听Home键
搜索热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. private final BroadcastReceiver homeRece ...
- android 监听home back,Android中监听Home键的4种方法总结
昨天需要处理一个问题,需要监听home键.最开始想到使用onKeydonwn这个方法.但是发现home不能这样处理,onKeydonwn可以处理菜单键和back键,但home不能.因为home键是系统 ...
- android 监听动画过程,Android应用开发之Android动画监听实现方法
本文将带你了解Android应用开发Android动画监听实现方法,希望本文对大家学Android有所帮助. Android动画监听实现方法. package com.briup.anim; impo ...
- android 监听图库变化,Android ContentObserver 监听图库变化
电脑环境是XP,软件是gVim7.3,安装在C盘的 Program Files 下.如何设置gVim的字体和背景颜色:C---Program Files---Vim---_vimrc文件,用文本编辑器 ...
- android项目监听蓝牙连接,android 蓝牙ACL通讯详解
本文主要是讲述android中蓝牙ACL链接的详细介绍,这里只讲述ACL,不讨论BLE,SCO,等等其他通讯通道,后面如果我有兴趣研究,我会贴上对应的文章链接 github下载地址 同时也是一个可直接 ...
- android 键盘弹出 监听,奇技淫巧之-Android监听键盘弹出与隐藏事件
CaptainAndroid.png 相信看到这个标题,大家都会潜意识觉得:Activity中没有可以复写的方法么?或者说,没有什么listener可以让我们使用么? 抱歉,真的没有,我们潜意识都是以 ...
最新文章
- centos7.1 RabbitMQ安装配置
- java重载和重载的区别
- 模拟浏览器自动化测试工具Selenium之五Centos系统命令行下部署selenium环境试验
- 导航栏与scrollerview(或scrollerview的子类)
- 焦作一中高考成绩查询2021,2021年焦作高中学校排名及录取分数线排名
- __bridge,__bridge_retained,__bridge_transfer
- 黑客走开系列1:Python使用元组做函数实参让代码更安全!
- Mysql的存储过程(以Mysql为例进行讲解)
- [编织消息框架][网络IO模型]AIO
- 熊猫烧香病毒分析报告
- 关于iptables封禁国外ip的方法
- Docker容器 Cgroup资源分配(CPU和内存资源分配)
- 一次excel表格操作
- EHCache的使用教程
- 某大厂程序员吐槽外包员工是大爷
- Hdu 4503 湫湫系列故事——植树节
- 电视剧旗舰剧情分集大结局
- Nautre综述:鸟枪法宏基因组-从取样到数据分析(1)2万字带你系统入门宏基因组实验和分析...
- Micosoft Visual C++ Runtime Library Runtime Error! Program: E:\UserschenliqunAnaconda3\python.exe
- [创新工具和方法论]-02- DOE实验设计步骤