Android EditText怎样显示光标闪动和不显示键盘

Android EditText怎样显示光标闪动和不显示键盘,第1张

text=(EditText)findViewById(RidediTtext);

if (androidosBuildVERSIONSDK_INT <= 10) {

textsetInputType(InputTypeTYPE_NULL);

} else {

getWindow()setSoftInputMode(WindowManagerLayoutParamsSOFT_INPUT_STATE_ALWAYS_HIDDEN);

try {

Class<EditText> cls = EditTextclass;

Method setSoftInputShownOnFocus;

setSoftInputShownOnFocus = clsgetMethod("setSoftInputShownOnFocus", booleanclass);

setSoftInputShownOnFocussetAccessible(true);

setSoftInputShownOnFocusinvoke(text, false);

} catch (Exception e) {

eprintStackTrace();

}

}加上这个试试

亲测可行:

et_nicnamesetFocusable(true);

et_nicnamesetFocusableInTouchMode(true);

et_nicnamerequestFocus();

Timer timer = new Timer();

timerschedule(new TimerTask() { //让软键盘延时d出,以更好的加载Activity

public void run() {

InputMethodManager inputManager =

(InputMethodManager)et_nicnamegetContext()

getSystemService(ContextINPUT_METHOD_SERVICE);

inputManagershowSoftInput(et_nicname, 0);

}

}, 800);

为了引出下面遇到的问题,提一下密码框删除的思路

删除细节:已输入密码删除移动焦点 ,和无输入内容时移动焦点

密码删除思路:拦截 DELETE 事件,清除输入框并取消焦点,让前一个输入框获取焦点。

测试妹子在使用华为P10 测试到这里的时候,发现删除键没用,她以为手机坏了。因为其他手机包括华为P9都可以响应删除并前移焦点。

开发手机我用的搜狗键盘没有问题,我切换回原生键盘再测发现——我勒个皮皮虾,毛反应都没有。测试妹子发现不是手机坏的,一个眼神光波差点把我炸到五米外。

这种奇葩坑必须深度挖一挖,不然还会被他的同类绊倒

设备:华为 ALT-TL00 501

因为这里是纯数字密码,设置属性 inputType 值为 numberPassword 。

测试日志发现,发现 ACTION_DOWN 、 ACTION_DOWN 、 DELETE 都没有获取到。

为了去除意外,我又测试了不设置 inputType ,果不其然全GG。

此时我真的感觉到了蛋疼 FUCK! 这是个锤子手机,心里默默吐槽了开发这个键盘的程序员兄弟。

翻了一下老司机的博客,和国外论坛。发现还有非常普遍的bug

在输入框,没有内容时不会传递 DELETE 相关事件

而我测试发现,这个华为手机上。无论输入框有无内容都没有传递出 DELETE 事件。

1自定义开发一个键盘,这样就不用再测试其他机型或者其他厂牌的输入法。统一解决了这个问题。简单暴力,还可以附加密码输入安全策略。

但是项目已经快到尾声了,全局需要替换密码键盘。还要跟在国外的开发小伙伴沟通。

站在这两点上,项目经理否定了。让我先针对性的解决一下。

于是就有了下面的解决办法。

2着手 EditText 对键盘事件的关联使用,覆盖事件监听接口为我们自定义的,只传递需要的 ACTION_DOWN 和 DELETE 事件。

这里我就不贴源码分析了,因为用到的方法只有两个,接口名字也是一读就懂。有兴趣的小伙伴可以去翻阅源码。

参考博客: Android 获取软键盘的删除delete事件

以上就是关于Android EditText怎样显示光标闪动和不显示键盘全部的内容,包括:Android EditText怎样显示光标闪动和不显示键盘、EditText自动获得了焦点但没有d出输入法软键盘、Android 输入法没有传递键盘DELETE事件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10152202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存