当前位置: 首页 > 知识库问答 >
问题:

OnClick for Android“箭头”按钮在EditText键盘上

章安易
2023-03-14

我搜索了一个又一个,但我似乎没能抓住AndroidEditText键盘上的“箭头”键。对我来说,正是退格下方的按钮看起来像一个箭头。

我试过使用:

            @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {


            System.out.println(actionId);

            if (event.getAction() != KeyEvent.ACTION_DOWN) {
                System.out.println("event.getAction() != KeyEvent.ACTION_DOWN");
                return false;
            }

            if (actionId == EditorInfo.IME_ACTION_NEXT) {
                System.out.println("keyCode == KeyEvent.FLAG_EDITOR_ACTION");

                trialNumber++;
                trialNumberTextView.setText("Trial" + Integer.toString(trialNumber));

                return true;
            }

            System.out.println("false");

            return false;
        }

    });

编辑文本:

<EditText
    android:id="@+id/sack_edit_text"
    android:textSize="30dp"
    android:textAlignment="center"
    android:hint="@string/trial_hint"
    android:layout_centerInParent="true"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:inputType="numberDecimal"
    android:digits="0123456789."
    android:maxLength="2"/>

但当我点击箭头按钮时,什么也没有打印出来。然而,这适用于键盘上的数字。我曾尝试在EditText xml中将箭头按钮更改为“完成”按钮,但这也不起作用。有人知道为什么吗?

共有2个答案

寇坚成
2023-03-14

android: imeOptions="actionNext"添加到XML中的EditText。

接下来,在编辑文本时设置OnEditorActionListener,如下所示,

etSack.setOnEditorActionListener(new TextView.OnEditorActionListener() {

        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {

            ...your code...

            if (actionId == EditorInfo.IME_ACTION_NEXT) {
              System.out.println("keyCode == KeyEvent.FLAG_EDITOR_ACTION");

              trialNumber++; 
              trialNumberTextView.setText("Trial" +        Integer.toString(trialNumber));

              return true; 
            } 

            System.out.println("false");
            return false;
        }

    });
闾丘选
2023-03-14

在布局中,只需设置XML属性。您需要在xml中使edittext单行为true。

android:singleLine="true"

然后在键盘上捕捉下一个动作,如:

 some_edittext.setOnEditorActionListener(new OnEditorActionListener() {
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_NEXT) {
                some_button.performClick();
                return true;
            }
            return false;
        }
    });

也可以查看这篇关于软键盘操作的详细描述。

 类似资料:
  • 如何在按钮中显示向上箭头符号?分别,我希望它在单击向下箭头时发生更改。我该怎么做?? 我试过了,但是。。。。

  • 我试图模拟在rad grid控件(Telerik)的文本区域中按下左右箭头键。 我有一个特定于浏览器Firefox的错误,其中选项卡事件(修复了此部分)和箭头键将不起作用。所有其他浏览器工作正常。 因此,作为一种解决方法,我想使用JavaScript或jquery模拟箭头键。 下面是我使用包含的选项卡事件修复程序所做的工作。除此之外,我还检查按键代码37(这是左箭头键)是否被按下。此时,我想模拟文

  • 问题内容: 我有一个“保存”按钮,我想与软键盘一起向上推。因此,当用户单击我的布局中的EditText时,按钮必须保持在键盘上方。现在,该按钮将隐藏在键盘下方。你怎么做到这一点? 提前致谢! 问题答案: 您需要将键盘的输入模式设置为。您可以这样做,将以下行添加到清单中您的活动属性中: 这是在活动中添加的属性的示例:

  • 问题内容: 如何检测何时按下箭头键之一?我用它来找出: 尽管它适用于所有其他键,但不适用于箭头键(可能是因为默认情况下浏览器应该在这些键上滚动)。 问题答案: 箭头键仅由触发,而不由触发。 关键代码为: left = 37 up = 38 right = 39 down = 40

  • 对于使用箭头键,首先必须存储它以分析它。这就是为什么我使用来存储它。但是当我尝试运行这段代码时,当我按下向上键时,它显示,当我按下回车键时,这个删除并退出程序,而不打印和

  • 我发现了很多相关的问题(这里和其他地方),但没有具体找到这个问题。 我正在尝试侦听箭头键(37-40)的键关闭事件,但是当以特定顺序使用箭头键时,后续箭头不会生成“keydown”事件。 示例:http://blog.pothoven.net/2008/05/keydown-vs-keypress-in-javascript.html 在该页面上,单击“在此处键入 - 但是,如果我做同样的事情,但