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

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

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

结果昨天有用户反馈在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不响应的原因及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索onkeylistener不响应
onkeylistener不响应、onkeylistener、onkeylistener 无效、setonkeylistener、setonkeylistener作用,以便于您获取更多的相关知识。

时间: 2024-09-18 22:36:10

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

电脑开机要按F1键才能正常启动的原因及解决方法

  开机的时候,win7系统用户总是需要等一会儿才能进入到系统,有用户反馈在此期间屏幕会出现"Press F1 to continue,Del to enter SETUP"的提示,而且画面定格住了,需要按F1键电脑才能正常启动.虽说不会对我们正常使用电脑造成什么影响,不过感觉就是怪怪的.为什么会出现这种情况呢?遇到这种情况我们又应该怎么办呢?下面就跟小编一起来了解下吧! 原因: 1.没有软驱或者软驱坏了,而BIOS里设置有软驱,导致开机要按F1才能正常启动; 2.原来挂了两个硬盘,在

Linux中Oracle的sqlplus下退格和Del键无效的问题解决_oracle

PS:近来因工作需要业余在学习oracle,发现通过SecureCRT或putty等SSH客户端远程登录Linux下oracle的sqplus时,输错字符后按Backspace键或Del键删除时,会出现^H或其他乱七八糟的的字符,感觉非常别扭不习惯,虽然可以通过Ctrl+Backspace组合键实现删除功能,但是严重影响使用效率.google了一番,终于完美解决此问题.总结记录如下,本文是此问题最完整的总结: 乱七八糟的字符如图: 一.SecureCRT终端里的解决方法:(不完美) 在Secur

Win8提示无效的产品密钥错误代码0x80070424的解决方法

  原因分析: 可能是Software Protection服务丢失,即在services中无法找到该服务. 解决方法: 1.按"Win+R"组合键,调出运行框,输入: services.msc 并回车,查找Software Protection服务: 2.如果找不到Software Protection服务,那么我们可以参考如下方案,通过导入Software Protection键值,重建Software Protection服务,来解决该问题: 3.新建一个记事本文件,将以下文字复

“本地计算机上的SQL SERVER服务启动后又停止了”解决方法

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   本方法主要是解决SQL Server运行过程中出现的"本地计算机上的MSSQLSERVER服务启动后又停止了.一些服务自动停止,如果它们没有什么可做的"解决方法. 笔者ASP运行环境:操作系统为Windows XP SP2,IIS的版本为默认的5.1,数据库为SQL Server 2005(MDAC版本为2.8) 一.出现"本地计算

IIS6 中&amp;quot;ASP 0201 错误 无效的默认脚本语言&amp;quot; 的解决方法_服务器

今天突然打开任意Asp文件,都会提示: Active Server Pages 错误 'ASP 0201'    无效的默认脚本语言    为此应用程序指定的默认脚本语言无效. 平台: Windows 2003 IIS 6.0 解决方法(对我的电脑适用,不知对别人是否有效,仅作参考): 1.在控制面板里,删除IIS组件. 2.删除C:\Inetpub目录. 3.重新安装IIS. 4.如果不行就试一下IIS管理器里的"重新启动IIS"

sql2005 本地计算机上的SQL SERVER服务启动后又停止了解决方法_mssql2005

    本方法主要是解决SQL Server运行过程中出现的"本地计算机上的MSSQLSERVER服务启动后又停止了.一些服务自动停止,如果它们没有什么可做的"解决方法.     笔者ASP运行环境:操作系统为Windows XP SP2,IIS的版本为默认的5.1,数据库为SQL Server 2005(MDAC版本为2.8)     一.出现"本地计算机上的MSSQLSERVER服务启动后又停止了.一些服务自动停止,如果它们没有什么可做的"      1.开始-

&quot;为帮助内容存储区指定的位置无效或者您无权访问该位置&quot;解决方法

这两天安装了几个第三方的Silverlight控件库后,突然发现vs2010的msdn帮助全没了,打开帮助设置,提示:"为帮助内容存储区指定的位置无效或者您无权访问该位置",要了亲命了,以前可是花了无数时间在线更新到最新状态滴! 百度了一下,找到了解决办法:打开注册表,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Help,删除help下的子项.重启vs,打开帮助设置,重新指定本地msdn帮助的目录为"以前安装的msdn帮助目录"

jQuery在html有效在jsp无效的原因及解决方法

最近用jQuery来写下拉框的选项值的左右移动,放到jsp里面就不能用了,经过测试终于找到了解决方法在此与大家分享下   最近用jQuery来写下拉框的选项值的左右移动,代码如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <h

IIS7中Ajax.AjaxMethod无效的原因及解决方法

使用Ajax.AjaxMethod方法在asp.net的服务器下一切正常,用iis的时候,js中总是cs类找不到,具体的解决方法如下,遇到类似情况的朋友可以参考下   最近做用Ajax.AjaxMethod方法的时候,在asp.net的服务器下一切正常,用iis的时候,js中总是cs类找不到,我就郁闷了,折腾了大半天,终于找到错误原因了. 因 为我发布网站用的是iis7,所以在web.config位置文件 中<system.webServer><handlers>></