时间:2021-05-20
在修改交易密码界面用到一个自定义输入框
类似这种(原谅丑了点~)
结果昨天有用户反馈在VIVO手机上回出现,Del键无效的问题~~~
最后发现是:EdiText的OnKeyListener没有响应。
最后搜搜了一下,找到了解决方案:重写EdiTextView的InputConnectionWrapper的方法后解决了问题:
代码如下:
public class ZanyEditText extends EditText { private OnDelKeyEventListener delKeyEventListener; public ZanyEditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public ZanyEditText(Context context, AttributeSet attrs) { super(context, attrs); } public ZanyEditText(Context context) { super(context); } @Override public InputConnection onCreateInputConnection(EditorInfo outAttrs) { return new ZanyInputConnection(super.onCreateInputConnection(outAttrs), true); } private class ZanyInputConnection extends InputConnectionWrapper { public ZanyInputConnection(InputConnection target, boolean mutable) { super(target, mutable); } @Override public boolean sendKeyEvent(KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_DEL) { if (delKeyEventListener != null) { delKeyEventListener.onDeleteClick(); return true; } } return super.sendKeyEvent(event); } @Override public boolean deleteSurroundingText(int beforeLength, int afterLength) { if (beforeLength == 1 && afterLength == 0) { return sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL)) && sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DEL)); } return super.deleteSurroundingText(beforeLength, afterLength); } } /** * * 功能描述: <br> * 〈功能详细描述〉 * * @param delKeyEventListener EditText删除回调 */ public void setDelKeyEventListener(OnDelKeyEventListener delKeyEventListener) { this.delKeyEventListener = delKeyEventListener; } public interface OnDelKeyEventListener { void onDeleteClick(); }}参考:http://stackoverflow.com/questions/4886858/android-edittext-deletebackspace-key-event%22
以上所述是小编给大家介绍的VIVO手机上del键无效OnKeyListener不响应的原因及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
以vivo为例,手机系统崩溃开不了机的解决方法是: 1、手机音量+键和开机键5秒钟,手机出现vivo手机Logo后,放开按键,手机自动进入官方Recovery
windows任务栏点不动的原因及解决方法如下: 1、电脑桌面卡机了。解决方法:先按CTRL+ALT+DEL打开任务管理器,结束EXPLORER.EXE进程,
wifi共享精灵启动不了的原因及解决方法wifi共享精灵启动不了的原因及解决方法wifi共享精灵启动不了的原因及解决方法wifi共享精灵启动不了的原因及解决方法
出现这种情况的原因及对应的解决方法: 1、手机没有连接上蓝牙耳机。解决方法可以进行重新配对。首先将蓝牙耳机关机再长按蓝牙耳机多功能键,激活蓝牙耳机与手机重新配
vivo手机没有信号的原因及解决方法: 1、SIM卡自身故障,可以重新插拨SIM卡保证SIM卡与手机接触良好,也可更换手机相应制式的SIM卡或功能正常无损坏的