2011-03-09 233 views
0

我有2個EditText字段,我想在第一個驗證成功後立即顯示第二個鍵盤(我不希望用戶點擊第二個字段)。我曾嘗試響應here,但我只能得到它在驗證失敗,用戶點擊OK上的錯誤彈出工作:顯示鍵盤

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() ----- 

鍵盤不顯示如果驗證通過,並且第二場仍然需要輸入:

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

我創建以顯示鍵盤知道我需要顯示的鍵盤在一個以上的情況下的方法:

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

一切森showKeyPad()是一個EditText,在閱讀Android文檔後,我仍然處於虧損狀態。

謝謝, MD。

+0

這似乎很複雜,我從未有過手動問鍵盤顯現。我只是試圖通過下一個領域的「重點」,它應該自動彈出。你在測試什麼? – blindstuff 2011-03-09 17:17:08

回答

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); 
}