1.使用AlertDialog.Builder 對話框自定義view,並通過setview設置 這裡要想在對話框按鈕的監聽事件中調用xml佈局裡面的控制項,不能直接findViewById,需要這樣寫 對話框.show()函數之後才可以調用, 編程之路,坑多且長,此處留白,未完待續 ...
1.使用AlertDialog.Builder 對話框自定義view,並通過setview設置
AlertDialog.Builder dlgAlert; dlgAlert = new AlertDialog.Builder(this); LayoutInflater inflater = getLayoutInflater(); dlgAlert.setTitle("用戶協議"); //dlgAlert.setMessage(R.string.agreement); View checkView=inflater.inflate(R.layout.agreedialogview,null); dlgAlert.setView(checkView); CheckBox agreeCheck=(CheckBox)checkView.findViewById(R.id.checkBox_agree);; dlgAlert.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { // if this button is clicked, close current activity if (agreeCheck.isChecked()) { init(); } else { finish(); System.exit(0); } } }).create(); dlgAlert.setNeutralButton("退出", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { // if this button is clicked, close current activity finish(); System.exit(0); } }).create(); dlgAlert.show();
這裡要想在對話框按鈕的監聽事件中調用xml佈局裡面的控制項,不能直接findViewById,需要這樣寫
View checkView=inflater.inflate(R.layout.agreedialogview,null); dlgAlert.setView(checkView); CheckBox agreeCheck=(CheckBox)checkView.findViewById(R.id.checkBox_agree);;
對話框.show()函數之後才可以調用,
編程之路,坑多且長,此處留白,未完待續