按“Enter”可在模拟器中使用,但不能在手机上使用

时间:2014-04-07 17:39:29

标签: android

这只是一个非常基本的问题。为什么它在模拟器上工作按下我的“真实键盘”进入但不按下我手机上的“输入”。它只是创建了一个新的界限。

myEditText.setOnKeyListener(new View.OnKeyListener() {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN) {                
                if ((keyCode == KeyEvent.KEYCODE_DPAD_CENTER)
                        || (keyCode == KeyEvent.KEYCODE_ENTER)) {
                    todoItems.add(0, myEditText.getText().toString());
                    aa.notifyDataSetChanged();
                    myEditText.setText("");
                    return true;
                }
            }
            return false;
        }

    });

enter image description here

1 个答案:

答案 0 :(得分:0)

这是一个似乎尚未解决的老问题。这些案例有一个解决方法。只需点击EditText(或您可能需要的View,并为其指定onEditorActionListener,如下所示:

final EditText editor = (EditText) findViewById(R.id.myEditText);
editor.setOnEditorActionListener(EnterOnText);

现在定义EnterOnText实现,如下所示:

TextView.OnEditorActionListener EnterOnText = new TextView.OnEditorActionListener() {
  public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
    if (actionId == EditorInfo.IME_ACTION_GO) {
      final String msg = view.getText().toString();
      if (!msg.isEmpty()) {
        // Do whatever you need here
        ...
      }
    }
    return true;
  }
};

现在,只需将布局的imeOptions属性更改为:

即可
android:imeOptions="actionGo"

相反,这可能会使您的模拟器输入密钥不起作用,但会(应该)在所有物理设备上执行。