Android студия закрывает клавиатуру и заканчивает деятельность - PullRequest
0 голосов
/ 24 декабря 2018

Когда я открываю это действие, оно показывает EditText, и автоматически отображается программная клавиатура.

Я хочу завершить упражнение, когда я нажимаю на кнопку «Назад» в левом нижнем углу, а не просто закрываюклавиатура.

enter image description here

Ответы [ 3 ]

0 голосов
/ 24 декабря 2018

Вы можете поместить этот код в утилиты, чтобы открыть клавиатуру.

  /**
 * Method to show keyboard
 *
 * @param context Context of the calling activity
 */
public static void showKeyboard(Context context) {
    try {
        InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.showSoftInput(((Activity) context).getCurrentFocus(), InputMethodManager.SHOW_IMPLICIT);
    } catch (Exception e) {
        e.printStackTrace();
    }
}


/**
 * Method to show keyboard
 *
 * @param context  Context of the calling activity
 * @param editText Edittext which will receive focus
 */
public static void showKeyboard(Context context, EditText editText) {
    showKeyboard(context);
    try {
        InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
        imm.showSoftInput(((Activity) context).getCurrentFocus(), InputMethodManager.SHOW_FORCED);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Также, если вы хотите скрыть клавиатуру, вы можете использовать этот код:

 /**
 * Method to hide keyboard
 *
 * @param mContext Context of the calling class
 */
public static void hideKeyboard(Context mContext) {
    try {
        InputMethodManager inputManager = (InputMethodManager) mContext
                .getSystemService(Activity.INPUT_METHOD_SERVICE);
        inputManager.hideSoftInputFromWindow(((Activity) mContext).getCurrentFocus().getWindowToken(), 0);
    } catch (Exception ignored) {
        ignored.printStackTrace();
    }
}

Используйте этокод в вашем менифесте:

android:windowSoftInputMode="adjustPan" 
0 голосов
/ 27 декабря 2018

Из вашего вопроса я понимаю, что вы хотите закончить свою деятельность нажатием кнопки.Для завершения любой деятельности вы можете использовать этот код

Intent i = new Intent(this,Here is your first activity.Class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
0 голосов
/ 24 декабря 2018

Добавьте это к вашей деятельности

@Override 

public boolean onKeyDown(int keyCode, KeyEvent event) { 

if ((keyCode == KeyEvent.KEYCODE_BACK)) {
 finish();
}
return super.onKeyDown(keyCode, event);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...