2013-11-24 3 views
1

У меня есть диалоговое окно, открытое в моем приложении для Android, и у меня есть кнопка при нажатии, которая отклонит диалоговое окно. Проблема в том, что есть также поле textedit, и если его фокусировка и клавиатура отображаются, тогда, когда я нажимаю кнопку отмены, диалог исчезает, но клавиатура все еще отображается.Как отключить клавиатуру Android в диалоговом окне?

Я хочу также отклонить клавиатуру.

Я искал вокруг, и для потоков, как этот Hide soft keyboard after dialog dismiss

Но ни одно из решений не работал для меня. Кстати, edittext - это тип ввода числа, если это имеет какое-то значение.

Кто-нибудь знает, как это исправить?

Благодаря

public void HandleTeamManagement() { 
    final Dialog teamDialog = new Dialog(this); 
    teamDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    teamDialog.setContentView(R.layout.dialog_team_management); 

    final EditText mergeNum = (EditText) teamDialog.findViewById(R.id.group); 


    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(mergeNum.getWindowToken(), 0); 



    // Setting Negative "NO" Button 
    Button cancelButton = (Button) teamDialog.findViewById(R.id.cancel); 
    cancelButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      teamDialog.dismiss(); 
     } 
    }); 

    // Showing Alert Dialog 
    teamDialog.show(); 
} 
+0

Вы имеете в виду, что следующее не сработало для вас: 'InputMethodManager imm = (InputMethodManager) getSystemService ( Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow (yourEditText.getWindowToken(), 0); '? –

+0

@omega: Вы жёстко поднимаете клавиатуру? – Vaibs

+0

Клавиатура поднимается, сосредотачиваясь на редакторе, поэтому я не насильственно его не поднимаю. – omega

ответ

2

Вы можете найти решение здесь:

http://www.workingfromhere.com/blog/2011/04/27/close-hide-the-android-soft-keyboard/

Close/hide the Android Soft Keyboard

Отредактировано: добавление кода Попробуйте ..Это работал для меня

  Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      if (editText!= null && getActivity() != null) { 
       InputMethodManager imm = (InputMethodManager) getActivity() 
         .getSystemService(
           Context.INPUT_METHOD_SERVICE); 
       imm.hideSoftInputFromWindow(
         editText.getWindowToken(), 0); 
      } 
     } 
    }, 1000); 
+0

Я пробовал те, но клавиатура все еще показывает. – omega

+0

Я добавил код выше. – omega

+0

Что такое обработчик и откуда его получить? – omega

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