2011-03-09 1 views
0

두 개의 EditText 필드가 있으며 두 번째 필드를 탭하지 않으려면 첫 번째 키의 유효성 검증이 완료된 직후 두 번째 키 패드를 표시하고 싶습니다. 나는 응답 here을 시도했지만 난 단지 검증이 실패하고 사용자가 오류에 팝업 확인을 탭하면 작동 얻을 수 : 검증 통과하고 두 번째 필드는 여전히 필요가있는 경우 키패드가 표시되지 않습니다키패드 표시

private void showMSG(String str, final EditText txtField) { 

     // build pop up box with error message 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setMessage(str) 
       .setTitle("Input Error") 
       .setCancelable(false) 
       .setNeutralButton("OK", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         dialog.dismiss(); 
         showKeyPad(txtField); 
         //((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(txtField, 0); 
        } 
       }); 


     AlertDialog message = builder.create(); 
     message.show(); 
    } // END showMSG() ----- 

을 입력 :

private void showKeyPad(View v) { 
     ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(v, 0); 
    } // END showKeyPad() ----- 

모든 센 :

if (this.frameSizeLength() == 0) { 
        this.txtFrameSize.requestFocus(); 
        // TO DO: display keyboard 
        this.showKeyPad(this.txtFrameSize); 
} 

난 하나 이상의 경우 키패드를 보여줄 필요가 알고 키패드를 표시하는 방법을 만들어 showKeyPad()는 EditText이며, Android 문서를 읽은 후에도 여전히 손실이 있습니다.

감사합니다. 메릴랜드.

+0

이것은 매우 복잡한 것, 내가 직접 보여 키패드를 물어 적이 없습니다. 나는 단지 다음 필드 인 "focus"를 전달하려고 시도 할 것이고, 그것은 자기 자신에 의해 나타날 것이다. 이것에 대해 당신은 무엇을 테스트하고 있습니까? – blindstuff

답변

0
InputMethodManager imm = (InputMethodManager) Main.mainClassInstance 
.getSystemService(Main.mainClassInstance.INPUT_METHOD_SERVICE); 

    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0); 

또는

public void showKeyboard(View v) { 
    InputMethodManager imm = (InputMethodManager) Main.mainClassInstance 
      .getSystemService(Main.mainClassInstance.INPUT_METHOD_SERVICE); 
    imm.showSoftInput(v, imm.SHOW_IMPLICIT); 
}