1. 程式人生 > >android AlertDialog中的Edittext自動獲取焦點並彈出軟鍵盤

android AlertDialog中的Edittext自動獲取焦點並彈出軟鍵盤

private void confirmPhoneGurdPswd(final String guardPswd) {

        // 1.建立彈出式對話方塊  
        final AlertDialog.Builder alertDialog = new android.app.AlertDialog.Builder(HomeActivity.this); // 系統預設Dialog沒有輸入框  

        // 獲取自定義的佈局  
        View alertDialogView = View.inflate(HomeActivity.this, R.layout.自定義佈局, null);

        // 2.密碼框-EditText。alertDialogView.findViewById(R.id.自定義佈局中的文字框)  
        final EditText et_dialog_confirmphoneguardpswd = (EditText) alertDialogView.findViewById(R.id.et_dialog_confirmphoneguardpswd);

        // 確認按鈕,確認驗證密碼  
        Button btn_dialog_resolve_confirmphoneguardpswd = (Button) alertDialogView.findViewById(R.id.btn_dialog_resolve_confirmphoneguardpswd);
        btn_dialog_resolve_confirmphoneguardpswd.setOnClickListener(new OnClickListener() {
            // 點選按鈕處理  
            public void onClick(View v) {
                // 提取文字框中輸入的文字密碼  
            }
        });
        // 取消按鈕,不驗證密碼  
        Button btn_dialog_cancel_confirmphoneguardpswd = (Button) alertDialogView.findViewById(R.id.btn_dialog_cancel_confirmphoneguardpswd);
        btn_dialog_cancel_confirmphoneguardpswd.setOnClickListener(new OnClickListener() {
            // 點選按鈕處理  
            public void onClick(View v) {
                //  
            }
        });

        AlertDialog tempDialog = alertDialog.create();
        tempDialog.setView(alertDialogView, 0, 0, 0, 0);

        /** 3.自動彈出軟鍵盤 **/
        tempDialog.setOnShowListener(new OnShowListener() {
            public void onShow(DialogInterface dialog) {
                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.showSoftInput(et_dialog_confirmphoneguardpswd, InputMethodManager.SHOW_IMPLICIT);
            }
        });

        tempDialog.show();
    }