2012-12-06 1 views
1

У меня есть activity, который открывает dialog, который содержит edittexts по адресу button. Как только dialog откроет softkeyboard. Я хочу предотвратить это. Только когда я нажимаю на edittext в dialog, должны появиться softkeyboard. Я использую Android 4.Скрыть экранную клавиатуру в диалоговом окне Загрузка в Android 4.0

Заранее спасибо

+0

попробовать [это] (http://stackoverflow.com/a/11732587/1436931) в вашем '' манифеста файлов –

+0

спасибо за replay ... извините, что он не работает в случае диалогового окна – Lincy

ответ

0

Это должно работать в любом случае:

public void hideKeyboard() { 

      mActivity.runOnUiThread(new Runnable() { 
       public void run() { 
        InputMethodManager inputManager = (InputMethodManager) mActivity 
          .getSystemService(Context.INPUT_METHOD_SERVICE); 
        inputManager.hideSoftInputFromWindow(mActivity 
          .getCurrentFocus().getWindowToken(), 
          InputMethodManager.HIDE_NOT_ALWAYS); 
       } 
      }); 
     } 
+0

Это бросает NPE для меня, поскольку getCurrentFocus() возвращает null , Ответ г-на Бунгла лучше. – wize

+0

Вместо того, чтобы действовать, вам нужно передать экземпляр своей деятельности. Но тогда все будет лучше. :) – Lincy

3

Для достижения этой цели, установить режим плавного ввода только перед вызовом dialog.Show():

// Build and create your dialog. 
AlertDialog dialog = new AlertDialogBuilder(...).create(); 

// Hide soft keypad by default (will be displayed when user touches any edit field). 
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 

// Show the dialog. 
dialog.show(); 
-1

Добавляя это в манифесте все вы ВГА сделать:

андроида: windowSoftInputMode = "stateHidden"

Простой, но в случае, если кто-то ищет здесь

:)

+0

Пользователь спрашивает о скрытии клавиатуры в диалоговом окне, а не в действии – wize

+0

проверить добавленный ответ wize – Lincy

 Смежные вопросы

  • Нет связанных вопросов^_^