这只是一个非常基本的问题。为什么它在模拟器上工作按下我的“真实键盘”进入但不按下我手机上的“输入”。它只是创建了一个新的界限。
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;
}
});
答案 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"
相反,这可能会使您的模拟器输入密钥不起作用,但会(应该)在所有物理设备上执行。