В Alertdialog, как скрыть / закрыть Android Soft Keyboard on Dismiss? [Дубликат]

Нотация нарезания питона:

a[start:end:step]
  • Для start и end отрицательные значения интерпретируются как относящиеся к концу последовательности.
  • Положительные индексы для end указывают положение после последнего элемента, который должен быть включен.
  • Пустые значения по умолчанию заданы следующим образом: [+0:-0:1].
  • Использование отрицательный шаг отменяет интерпретацию start и end

. Обозначение распространяется на (numpy) матрицы и многомерные массивы. Например, чтобы разрезать целые столбцы, вы можете использовать:

m[::,0:2:] ## slice the first two columns

В срезах хранятся ссылки, а не копии элементов массива. Если вы хотите сделать отдельную копию массива, вы можете использовать deepcopy() .

33
задан Dmytro Zarezenko 24 July 2012 в 16:06
поделиться

5 ответов

У меня была аналогичная проблема при закрытии диалогового окна предупреждения.

Внутри вашего диалогового окна

public static void closeKB(final View view) 
{
    caller.postDelayed(new Runnable() {
        @Override
        public void run() {
            InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
        }
    }, 1);
}

@Override
public void onDismiss(DialogInterface dialog)
{
    super.onDismiss(dialog);
            View view = getActivity().getCurrentFocus();
    if (view != null)
    {
        closeKB(view);
    }
}
5
ответ дан Miika Pakarinen 5 September 2018 в 07:32
поделиться

В манифесте xml

android:windowSoftInputMode="stateAlwaysHidden"

Он автоматически скроет мягкую клавиатуру при отклонении Dialog

67
ответ дан Nilesh Rathod 5 September 2018 в 07:32
поделиться

Я встретил ту же проблему. Решил это, делая это. Он не требует ссылки:

imm.hideSoftInputFromWindow(getWindow().getDecorView()
                .getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
14
ответ дан NordicShaw 5 September 2018 в 07:32
поделиться

Я использую этот метод:

IBinder token = searchTextEntry.getWindowToken();
( ( InputMethodManager ) getSystemService( Context.INPUT_METHOD_SERVICE ) ).hideSoftInputFromWindow( token, 0 );

Где searchTextEntry - имя моей ссылки EditText.

3
ответ дан ScouseChris 5 September 2018 в 07:32
поделиться

Все эти советы для использования InputMethodManager несколько расплывчаты - где именно назвать это, и они не работают, по крайней мере, для меня. Да, клавиатура исчезает, но потом приложение падает !? Основная проблема заключается в том, что скрытие клавиатуры происходит одновременно с исчезновением диалога.

Чтобы избежать этого, dialog.dismiss() следует вызвать в view.postDelayed() после imm.hideSoftInputFromWindow(), и в моем случае я устанавливаю задержку как 150.

0
ответ дан ZygD 5 September 2018 в 07:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: