проблема в скрытии клавиатуры при нажатии на поле редактирования в приложении Android - PullRequest
0 голосов
/ 13 июля 2011

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

bd =(EditText)findViewById(R.id.dob);
bd.setHint("Birth Date");
bd.setOnClickListener(bdListener); 



private OnClickListener bdListener = new View.OnClickListener()
 {
     public void onClick(View v) 
     {
      hidesoftkeyboard();
      DOBalert();
     }
 }




private void hidesoftkeyboard()
  {
    InputMethodManager imm = InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromInputMethod(bd.getWindowToken(), 0);
  }

Но клавиатура все еще не прячется, где я ошибаюсь, пожалуйста, помогите мне друзья

Ответы [ 4 ]

0 голосов
/ 09 января 2013

попробуйте это в вашей активности

    @Override
    public boolean dispatchTouchEvent(MotionEvent event) {
       boolean ret = super.dispatchTouchEvent(event);
       hidesoftkeyboard();          
       return ret;
    }
0 голосов
/ 20 июля 2011

вышеупомянутые ответы не работают для меня, и наконец я изменил поля редактирования, чтобы быть текстовым представлением.

0 голосов
/ 20 июля 2011
 android:windowSoftInputMode=[         "stateUnchanged", "stateHidden",
                                       "stateAlwaysHidden", "stateVisible",
                                       "stateAlwaysVisible",
                                       "adjustResize", ] >   

Используйте часть этого в своем манифесте, это скроет автоматическое всплывающее окно с клавиатурой. Однако, если вы используете ваш EditText для некоторого ввода, вам понадобится клавиатура. :)

0 голосов
/ 13 июля 2011

попробуйте добавить это в ваш метод hidesoftkeyboard ():

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

или

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...