У меня есть edittext, который должен функционировать как текстовое поле в iOS. Когда я нажимаю на него, он должен стать редактируемым, иначе он должен быть отключен. Предположим, пользователь хочет отредактировать определенное значение, и когда он нажимает кнопку «Назад», а также на клавиатуре, я хочу, чтобы edittext стал отключенным для редактирования.Обнаружение закрытия события клавиатуры в Android
Все, что я использую, это метод setCursorVisible (true) и setCursorVisible (false). Я попытался использовать события keyCode, но они не помогают. Это то, что я пробовал до сих пор:
@Override
public void onBackPressed() {
// Had the InputMethodManager service here..
if(imm.isAcceptingText())
{
Toast.makeText(ProfileActivity.this,"working",Toast.LENGTH_SHORT).show();
}
else {
super.onBackPressed();
Toast.makeText(ProfileActivity.this,"back pressed called",Toast.LENGTH_SHORT).show();
}
}
Также попробовал переопределить событие keyDown.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//replaces the default 'Back' button action
if(keyCode==KeyEvent.KEYCODE_BACK)
{
Log.d("123","called,called");
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override общественного логический onKeyPreIme (INT KEYCODE, KeyEvent событие) { если (KEYCODE == KeyEvent.KEYCODE_BACK) {// Пользователь нажал клавишу Назад. Поэтому скройте клавиатуру InputMethodManager mgr = (InputMethodManager) context.getSystemService (Context.INPUT_METHOD_SERVICE); mgr.hideSoftInputFromWindow (this.getWindowToken(), 0); // TODO: Скрыть ваше мнение, как вы это делаете } return false; } – AndroidMech
Пробовал использовать это ... но действие завершается сразу же после нажатия. Я хочу, чтобы действие было закончено во второй раз, когда я нажимаю назад. На первом обратном направлении, Отключить клавиатуру и setCursorVisible (false) это то, что я ожидаю. – AndroidMech
Вы имеете в виду следующее: http://stackoverflow.com/questions/8430805/android-clicking-twice-the-back-button-to-exit-activity? – Slartibartfast