【发布时间】:2014-08-13 17:17:11
【问题描述】:
当我单击 Enter 键时(当我在第一个 EditView 中时),我想为另一个 EditView(而不是我正在使用的)打开键盘。
场景应该是这样的: 我正在为第一个 EditView 的键盘写一些东西,我已经完成了,所以我按“Enter”,它会打开第二个 EditView 的键盘。
我尝试了不同的代码但没有成功,如果有人可以帮助我。
【问题讨论】:
当我单击 Enter 键时(当我在第一个 EditView 中时),我想为另一个 EditView(而不是我正在使用的)打开键盘。
场景应该是这样的: 我正在为第一个 EditView 的键盘写一些东西,我已经完成了,所以我按“Enter”,它会打开第二个 EditView 的键盘。
我尝试了不同的代码但没有成功,如果有人可以帮助我。
【问题讨论】:
如果我理解这里就是答案
editText.setImeOptions(EditorInfo.IME_ACTION_NEXT);
【讨论】:
您基本上想在按下 Enter 后将焦点从 1 个 EditText 切换到另一个。
这可以通过在您的第一个 EditText 上设置“setNextFocusDownId”选项来轻松完成。
firstEditText.setNextFocusDownId(R.id.secondEditTextId);
【讨论】:
EditText firstEditText = (EditText) findViewById(R.id.first);EditText secondEditText = (EditText) findViewById(R.id.second);firstEditText.setNextFocusDownId(R.id.second);
我通过像 Kasper 建议的那样使用“setNextFocusDownld”搜索找到,使用以下答案:Android Softkey's next button not taking focus to spinner
我使用的代码是:
mEditText.setNextFocusDownId(R.id.textView2b);
mEditText.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
// If the event is a key-down event on the "enter" button
if ((event.getAction() == KeyEvent.ACTION_DOWN)
&& (keyCode == KeyEvent.KEYCODE_ENTER)) {
// Perform action on Enter key press
mEditText.clearFocus();
mEditText2.requestFocus();
return true;
}
return false;
}
});
mEditText2.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
// If the event is a key-down event on the "enter" button
if ((event.getAction() == KeyEvent.ACTION_DOWN)
&& (keyCode == KeyEvent.KEYCODE_ENTER)) {
// Perform action on Enter key press
mEditText2.clearFocus();
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mEditText2.getWindowToken(), 0);
return true;
}
return false;
}
});
【讨论】: