2011-06-10 38 views
2

內我都顯示警告對話框時所顯示的代碼,我認爲應該努力迫使鍵盤。炫耀武力軟鍵盤從AlertDialog

public void showTypeBox(){ 
     edit = new EditText(this); 
     edit.setPadding(10, 0, 0, 10); 

     AlertDialog dialog = new AlertDialog.Builder(this) 
      .setTitle("Type word to search for:") 
      .setPositiveButton("Search", Main.this) 
      .setNegativeButton("Cancel", null) 
      .setView(edit) 
      .setIcon(R.drawable.menu_icon) 
      .create(); 
     dialog.show(); 

     InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
     mgr.showSoftInput(edit, InputMethodManager.SHOW_IMPLICIT); 
    } 

我不明白我在這裏做錯了什麼。

+0

想要在文本框的焦點上顯示鍵盤? – 2011-06-10 15:50:20

回答

5

你想帶鍵盤EditText的佈局和可見之前。試試這個:

Handler delayedRun = new Handler(); 
delayedRun.post(new Runnable() { 
    @Override 
    public void run() { 
    edit.requestFocus(); 
    InputMethodManager mgr = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
    mgr.showSoftInput(addressBox, InputMethodManager.SHOW_IMPLICIT); 
    } 
}); 
+0

現貨對隊友的歡呼聲。 – SamRowley 2011-06-10 15:53:19

+0

沒問題,但事實上,在'對話框EditText's沒有自動對焦,並顯示該鍵盤是很煩人的。 – dmon 2011-06-10 16:09:36

+0

@dmon +1提醒我,我可以'的getContext()'從我的自定義視圖中 – 2011-11-09 08:54:58