Android輸入對話方塊參考程式碼
阿新 • • 發佈:2019-01-31
private void addBluetoothMac() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("請輸入藍芽地址"); //設定對話方塊標題 builder.setIcon(R.drawable.logo); //設定對話方塊標題前的圖示 final EditText edit = new EditText(this); //建立EditText輸入框 builder.setView(edit); //輸入框賦值給Dialog //增加確定和取消按鈕builder.setPositiveButton("確認", null); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //可以在此處彈出相應的提示 } }); builder.setCancelable(false); //設定按鈕是否可以按返回鍵取消,false則不可以取消 final AlertDialog dialog =builder.create(); //建立對話方塊 dialog.setCanceledOnTouchOutside(false); //設定彈出框失去焦點是否隱藏,即點選遮蔽其它地方是否隱藏 dialog.show(); //顯示對話方塊,這裡必須要先調show()方法,後面的getButton才有效 //處理確認按鈕 dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view){ String mac = edit.getText().toString(); //獲取輸入框的內容 //正則校驗藍芽MAC合法性 String patternMac="^[a-fA-F0-9]{2}(:[a-fA-F0-9]{2}){5}$"; if(!Pattern.compile(patternMac).matcher(mac).find()){ Toast.makeText(MainActivity.this, "藍芽地址不合法", Toast.LENGTH_SHORT).show(); return; //輸入不合法就在此返回,對話方塊不會消失 } //輸入合法,做其他處理 //。。。 dialog.dismiss(); //退出對話方塊 } }); }
注意:在建立AlertDialog時setPositiveButton方法的OnClickListener引數需傳入null,然後讓dialog show出來以後,再通過getButton(AlertDialog.BUTTON_POSITIVE)方法重新得到確定按鈕,重設點選事件,這時如果不手動去調dialog.dismiss(),對話方塊就不會消失了。