【问题标题】:How to override Soft keyboard keyPress event in android?如何在android中覆盖软键盘keyPress事件?
【发布时间】:2016-02-17 07:06:06
【问题描述】:

我需要一个侦听器来检测我的活动上的用户交互,该活动附加了一个片段,我已经覆盖了diapatchTouchEvent(),它适用于触摸事件和硬键事件,但不适用于软键盘按键。

为了拦截键盘触摸事件,我尝试过onUserInteraction()dispatchKeyEvents()onKeyUponKeyDown,但它们都不适用于软键盘。

还有其他方法可以拦截 Android 中的软键盘事件吗?

对于上述查询,我​​已经浏览了这些链接:

https://stackoverflow.com/a/25620981/3954050

Android SoftKeyboard onKeyDown/Up not detecting 'alternative' keys

【问题讨论】:

    标签: android android-activity keyboard android-softkeyboard android-keypad


    【解决方案1】:

    如果你想拦截键盘事件,如完成,或搜索或输入等,在你的编辑文本中添加一个 imeOption

    <EditText
       ..../
      android:id="@+id/myEditText"
      android:imeOptions="actionSearch"/>
    

    并向该编辑文本添加一个 EditorActionListener。

    myEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                boolean handled = false;
                if (actionId == EditorInfo.IME_ACTION_SEARCH){
                    //Do something
                }
    

    【讨论】:

    • 不,我想拦截软键盘上所有键盘按键的按键事件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多