最近做项目需要使用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相关推荐

  1. Delphi 监听安卓(Android)手机通知栏信息

    Delphi 监听安卓(Android)手机通知栏信息 因为一些业务需要,我们有时候需要知道手机通知栏显示的信息,然后根据这些信息去处理一些相应的业务逻辑.如:自动监听收到的短信验证码,提取后自动填写 ...

  2. android监听动画完成,android判断动画已结束示例代码

    添加一个动画效果 发现动画没执行完 就直接跳转或者finish掉 添加动画监听事件即可,代码如下: player.startAnimation(anim); anim.setAnimationList ...

  3. android 控件监听方法是,Android | Android中监听Button的实现

    Android中监听Button的实现 单按钮监听 2018-04-27_061911.jpg 1.在按钮所属的父Activity里,创建按钮变量 private Button mBtnTextVie ...

  4. android 监听来电去电,Android监听来电和去电的实现方法

    本文实例讲述了Android监听来电和去电的实现方法.分享给大家供大家参考,具体如下: 要监听android打电话和接电话,只需下面2步骤 第一步,写一个Receiver继承自BroadcastRec ...

  5. android 应用监听home键,Android 监听Home键

    搜索热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. private final BroadcastReceiver homeRece ...

  6. android 监听home back,Android中监听Home键的4种方法总结

    昨天需要处理一个问题,需要监听home键.最开始想到使用onKeydonwn这个方法.但是发现home不能这样处理,onKeydonwn可以处理菜单键和back键,但home不能.因为home键是系统 ...

  7. android 监听动画过程,Android应用开发之Android动画监听实现方法

    本文将带你了解Android应用开发Android动画监听实现方法,希望本文对大家学Android有所帮助. Android动画监听实现方法. package com.briup.anim; impo ...

  8. android 监听图库变化,Android ContentObserver 监听图库变化

    电脑环境是XP,软件是gVim7.3,安装在C盘的 Program Files 下.如何设置gVim的字体和背景颜色:C---Program Files---Vim---_vimrc文件,用文本编辑器 ...

  9. android项目监听蓝牙连接,android 蓝牙ACL通讯详解

    本文主要是讲述android中蓝牙ACL链接的详细介绍,这里只讲述ACL,不讨论BLE,SCO,等等其他通讯通道,后面如果我有兴趣研究,我会贴上对应的文章链接 github下载地址 同时也是一个可直接 ...

  10. android 键盘弹出 监听,奇技淫巧之-Android监听键盘弹出与隐藏事件

    CaptainAndroid.png 相信看到这个标题,大家都会潜意识觉得:Activity中没有可以复写的方法么?或者说,没有什么listener可以让我们使用么? 抱歉,真的没有,我们潜意识都是以 ...

最新文章

  1. centos7.1 RabbitMQ安装配置
  2. java重载和重载的区别
  3. 模拟浏览器自动化测试工具Selenium之五Centos系统命令行下部署selenium环境试验
  4. 导航栏与scrollerview(或scrollerview的子类)
  5. 焦作一中高考成绩查询2021,2021年焦作高中学校排名及录取分数线排名
  6. __bridge,__bridge_retained,__bridge_transfer
  7. 黑客走开系列1:Python使用元组做函数实参让代码更安全!
  8. Mysql的存储过程(以Mysql为例进行讲解)
  9. [编织消息框架][网络IO模型]AIO
  10. 熊猫烧香病毒分析报告
  11. 关于iptables封禁国外ip的方法
  12. Docker容器 Cgroup资源分配(CPU和内存资源分配)
  13. 一次excel表格操作
  14. EHCache的使用教程
  15. 某大厂程序员吐槽外包员工是大爷
  16. Hdu 4503 湫湫系列故事——植树节
  17. 电视剧旗舰剧情分集大结局
  18. Nautre综述:鸟枪法宏基因组-从取样到数据分析(1)2万字带你系统入门宏基因组实验和分析...
  19. Micosoft Visual C++ Runtime Library Runtime Error! Program: E:\UserschenliqunAnaconda3\python.exe
  20. [创新工具和方法论]-02- DOE实验设计步骤

热门文章

  1. 强一致共识算法-BFT/CFT
  2. 微信小程序转换为uni-app项目
  3. Spring Boot框架
  4. Rhinoceros mac版(犀牛三维建模软件)中文版
  5. 曼哈顿算法公式_距离计算方法总结 | Public Library of Bioinformatics
  6. Dell EMC VxRail
  7. 基于A*搜索和深度优先搜索解迷宫问题
  8. 每天听的一首歌---奔跑
  9. 网络直播电视之寻找直播地址(下)
  10. 对于多组数据输入输出的基础题目