Во-первых, я не знаю, какой ключевой код для ключа Return или Backspace тот, у которого есть строка на клавиатуре Android.
Во-вторых, у меня есть несколько полей edittext на экране, и я хочу, чтобы каждый из них покинул клавиатуру, когда пользователь нажал клавишу Return.
imm= (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
public void onClick(View v) {
int flag;
flag=v.getId();
// keycode for return
if(v.getId()==XX) {
imm.hideSoftInputFromWindow(YYY.getWindowToken(), 0);
}
XX
- это ключевой код для этого ключа Return, и YYY
- это то, что я должен заполнить. Мне хотелось бы, чтобы YYY
generic применялся ко всем полям edittext в программе
Я не уверен, почему вы пытаетесь обработать это методом onClick
. Правильный путь, я думаю, состоит в вызове setOnKeyListener()
для каждого вида EditText и в вашем OnKeyListener
, вы можете сделать это:
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode = KeyEvent.KEYCODE_ENTER) {
// non-null only for enter key
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
return true;
}
return false;
}
Один экземпляр OnKeyListener
может использоваться для всех представлений EditText (вообще-то, вообще), где вы хотите этого поведения.