gpt4 book ai didi

VIVO手机上del键无效OnKeyListener不响应的原因及解决方法

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章VIVO手机上del键无效OnKeyListener不响应的原因及解决方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在修改交易密码界面用到一个自定义输入框 。

类似这种(原谅丑了点~) 。

结果昨天有用户反馈在VIVO手机上回出现,Del键无效的问题~~~ 。

最后发现是:EdiText的OnKeyListener没有响应.

最后搜搜了一下,找到了解决方案:重写EdiTextView的InputConnectionWrapper的方法后解决了问题:

代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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不响应的原因及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我网站的支持! 。

原文链接:http://blog.csdn.net/yanghuiyu38/article/details/53638601 。

最后此篇关于VIVO手机上del键无效OnKeyListener不响应的原因及解决方法的文章就讲到这里了,如果你想了解更多关于VIVO手机上del键无效OnKeyListener不响应的原因及解决方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com