對話框:
對話框的icon,title,message等都可以不設置。
單選框和多選框與對話框勾選步驟基本上一致。
對話框的構建步驟:
1.使用AlertDialog類的內部類Builder類new 一個builder對象
2.設置圖標setIcon() ; builder.setIcon();
3.設置title setTitle(); builder.setTitle();
4.設置Message setMessage(); builder.setMessage();
5.設置確定按鈕 setPositiveButton() ; builder.setPositiveButton()
6.設置取消按鈕 setNegativeButton(); builder.setNegativeButton()
7.設置顯示 show(); builder.show();
代碼:
1 public void click(View v) { 2 AlertDialog.Builder builder = new AlertDialog.Builder(this); 3 builder.setIcon(android.R.drawable.alert_dark_frame); 4 builder.setTitle("鼻血儉朴"); 5 builder.setMessage("尹志平,請考慮好!!!"); 6 builder.setPositiveButton("確定", new OnClickListener() { 7 8 @Override 9 public void onClick(DialogInterface dialog, int which) { 10 Toast.makeText(MainActivity.this, "謝謝使用本軟件,關閉", 0).show(); 11 } 12 }); 13 14 builder.setNegativeButton("取消", new OnClickListener() { 15 16 @Override 17 public void onClick(DialogInterface dialog, int which) { 18 Toast.makeText(MainActivity.this, "沒有子宮,肯定不成功", 0).show(); 19 } 20 }); 21 22 builder.show(); 23 }
單選框:
注意:構建過程中,不可以使用setMessage()方法,否則會不顯示選項列表。
使用setSingleChoiceItems()方法設置單選
參數:
1.items:定義的單選選項數組
2.checkedItem:默認被選中的選項。默認不選中為-1,選中數組第一個為0,選中數組第二個為1,選擇數組第三個為2
3.listener:偵聽器
1 builder.setSingleChoiceItems(items, -1, new OnClickListener() { 2 3 @Override 4 public void onClick(DialogInterface dialog, int which) { 5 Toast.makeText(MainActivity.this, "選擇的是:" + items[which], 0) 6 .show(); 7 dialog.dismiss(); 8 } 9 });
偵聽器的onClick()方法的兩個參數
1.dialog:點擊時觸發的對話框
2.which:被點擊按鈕的位置或者項目的位置
代碼:
1 public void click1(View v) { 2 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 3 builder.setIcon(android.R.drawable.alert_dark_frame); 4 builder.setTitle("鼻血儉朴"); 5 final String[] items = new String[] { "女", "男" }; 6 builder.setSingleChoiceItems(items, -1, new OnClickListener() { 7 8 @Override 9 public void onClick(DialogInterface dialog, int which) { 10 Toast.makeText(MainActivity.this, "選擇的是:" + items[which], 0) 11 .show(); 12 dialog.dismiss(); 13 } 14 }); 15 builder.show(); 16 }
多選框:
注意:構建過程中,不可以使用setMessage()方法,否則會不顯示選項列表。
使用setMultiChoiceItems()方法設置多選
1 builder.setMultiChoiceItems(items, checkedItems, 2 new OnMultiChoiceClickListener() { 3 4 @Override 5 public void onClick(DialogInterface dialog, int which, 6 boolean isChecked) { 7 checkedItems[which] = isChecked; 8 } 9 });
偵聽器的onClick()方法的兩個參數
1.dialog:點擊時觸發的對話框
2.which:被點擊按鈕的位置或者項目的位置
3.isChecked:點擊某個選項,如果該選項之前沒被選擇,那么此時isChecked的值為true,不勾選則為false。
代碼:
1 public void click2(View v) { 2 AlertDialog.Builder builder = new AlertDialog.Builder(this); 3 builder.setIcon(android.R.drawable.alert_dark_frame); 4 builder.setTitle("請選擇多個選項"); 5 final String[] items = new String[] { "貂蟬", "西施", "主管", "設計", "開發" }; 6 final boolean[] checkedItems = new boolean[] { false, false, false, 7 false, false }; 8 builder.setMultiChoiceItems(items, checkedItems, 9 new OnMultiChoiceClickListener() { 10 11 @Override 12 public void onClick(DialogInterface dialog, int which, 13 boolean isChecked) { 14 checkedItems[which] = isChecked; 15 } 16 }); 17 builder.setPositiveButton("確定", new OnClickListener() { 18 19 @Override 20 public void onClick(DialogInterface dialog, int which) { 21 22 String text = ""; 23 for (int i = 0; i < items.length; i++) { 24 if (checkedItems[i]) { 25 text += items[i]; 26 } 27 } 28 Toast.makeText(MainActivity.this, text, 0).show(); 29 dialog.dismiss(); 30 31 } 32 }); 33 builder.show(); 34 }
AlartDialog按Back鍵的處理:
可以通過代碼設置:默認是true,就是說可以通過按back鍵取消了。
builder.setCancelable(false); //默認為true
同時可以設置back鍵的監聽,自定義動作
1 builder.setOnCancelListener(new OnCancelListener() { 2 3 @Override 4 public void onCancel(DialogInterface dialog) { 5 //定義的操作 6 } 7 });