2011-06-10 3 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

텍스트 상자에서 키보드를 표시하고 싶습니까? –

답변

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

+0

아무런 문제가 없다. 대화 상자에서'EditText'가 자동으로 포커스를 맞추지 않고 키보드를 보여주지 않는다는 사실은 상당히 성가시다. – dmon

+0

@dmon +1 내 사용자 정의보기 내에서 getContext()를 할 수 있음 –

관련 문제