需求:用户在EditText里输入文字时 通过afterTextChanged监听用户输入状态,在输入文字时自动调用后台,请求数据。

问题:在小米等部分手机上时,因为小米系统的问题,输入法在EditText上输入东西时,会优先输入一段带下划线的拼音然后在用户选择某个字的时候才会变成汉字,但是对于afterTextChanged方法来说,不管是拼音还是汉字都会触发监听事件,对于我们而言,很明显那些拼音输入时不需要的。

 如我输入 学习 二字,在小米上就是先显示 xuexi  然后才能选择 学习。

(不要说只识别汉字就好,后台规定英文也可以搜,难受)

其实判断用户输入完成后 两秒以后再开始搜索也可以,不过既然这个带下划线拼音的问题出现了,肯定就要解决

算一下如果按这么搜索的话 我们调用了几次后台 整整六次 其中五次是无意义的,所以需要识别出是否输入完成状态,而不是这种带下划线的输入状态。

解决方案:通过观察与猜想(瞎蒙),发现这种(奇葩)手机的输入状态都是带下划线的,所以解决方案就是从下划线开始解决。

Android 系统带有对下划线样式的设置,给一些笔记本APP使用。其中有一个下划线功能专门的参数,费了点劲找到了。

UnderlineSpan

接下来就简单了 我们获取到自己字符串里的Span,判断该Span是否带下划线就可以了

下面上Code

Object[] spans = EditText.getSpans(0, "yourString".length(), Object.class);
boolean inputState = false;
if (spans != null) {for (Object span : spans) {if (span instanceof UnderlineSpan) {inputState = true;
            break;
        }}
}

当输入的内容不再带有下划线时,inputState =false

上面这段Code就是写出来它是根据什么判断的,大家可以根据自己的想法重新写一下,这段Code我只是为了方便演示写出来的

(有问题请多指教)

Android部分手机在使用EditText进行自动联想时会先输入拼音的问题相关推荐

  1. Android完美实现EditText换行自动缩进

    Android完美实现EditText换行自动缩进 一.目标 二.体验地址 三.实现方案 四.组合起来 1. IndentTextWatcher 五.Finally 一.目标 实现换行时,自动对齐当前 ...

  2. Android品牌手机,手机坑合集,手机厂商

    > 手机产业  一.利润(2017-11)   只要说起利润,大家就很清楚了,拿2017年一季度数据来看,苹果占利润84%,三星占利润12%,其他品牌一起瓜分4%,许多国产机在亏损,卖一台亏一台 ...

  3. Android系列教程之七:EditText使用详解-包含很多教程上看不到的功能演示

    写道 标题有点大,说是详解,其实就是对EditText的一些常用功能的介绍,包括密码框,电话框,空白提示文字等等的讲解,尽量的介绍详细一点,也就是所谓的详解了..呵呵 广告一下我的应用"我团 ...

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

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

  5. android api 设置,Android API中文文档EditText

    Android API中文文档EditText是本文要介绍的内容,主要是来了解并学习Android API文档的帮助,具体关于Android API的内容的详解来看本文. 一.Android API中 ...

  6. Android不同手机屏幕分辨率自适应

    有必要了解的 Android中常见的单位 dip, dp, px, sp之间的区别: dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设 ...

  7. EasyRTMP Android安卓手机直播推流摄像头偏暗的问题解决

    在我们测试EasyRTMP Android安卓手机推流的过程中发现有些设备预览时,明显偏暗!在稍微暗点的环境中几乎很难看清东西-额,这是怎么回事呢?又是安卓设备的兼容性问题,头疼! !!!好吧,停止抱 ...

  8. 基于Android的手机安全卫士的开发

    基于Android的手机安全卫士的开发 开发环境 处理器:Intel® Core™ i5-5200U CPU 2.20GHz 内存:4GB 硬盘:500GB 操作系统:Windows 7中文版,64位 ...

  9. 一篇读懂:Android/iOS手机如何通过音频接口(耳机孔)与外设通信

    一文读懂Android/iOS手机如何通过音频接口与外设通信 更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,一起学习探讨软硬件技术知识经验,关注就有海量学习资料免费领哦: 目录 一文读懂 ...

最新文章

  1. php 正则教程,最通俗易懂的php正则表达式教程(上)
  2. hadoop的hdfs文件操作实现上传文件到hdfs
  3. Activity has leaked window that was originally added 问题解决
  4. LeetCode MySQL 1445. 苹果和桔子
  5. 美团外卖Android Lint代码检查实践
  6. linux shell和配置文件的执行顺序
  7. js怎么给div加滑动条 vue给弹出层加滑动条(一分钟学会用js加滚动条)
  8. 经典配分函数公式以及量子统计形式
  9. 全国主要省会城市和地区手机离线地图数据文件下载地址
  10. 基本矩阵运算法则之笔记
  11. 世界顶级的程序员们都在读哪些书?
  12. runtime error
  13. eos 区块链 java 开发_EOS 交易验证的主要思路 - EOS 区块链开发实战
  14. Java中if条件语句举例详解
  15. AAAI-21-DocRE-Document-Level Relation Extraction with Adaptive Thresholding and Localized Context Po
  16. 2.linux中tty、ttySn、ttyUSBn的区别及查看
  17. nz-zero Icon图标的基本使用
  18. 2013-2014 NBA 东西部决赛 + 总决赛合集
  19. 软件打包安装工具第一篇(安装包原理)
  20. 三点求平面方程、平面法向量和点到平面的距离

热门文章

  1. 计算机网络课程设计:电子政务
  2. C++ 进程间通信详解
  3. 【更新于12.29】深度学习论文汇总
  4. MySQL使用教程(Navicat)
  5. SpringBoot+Vue项目毕业论文管理系统
  6. 十大工业物联网常用传感器,你用过哪些?
  7. SQL语句习题总练习
  8. 计算机中 8位无符号数,8位无符号数乘法运算HDL设计实例 - 全文
  9. 点击图片 实现放大功能
  10. 深圳FC1511型号单片机应用程序编程开发环境MCU