Android的版本有很多通常開發的時候對話框大多數使用自定義或是 Google提供的V4, V7 相容包來開發保持各個版本的對話框樣式統一,所以這裡使用的是V7 包里的AlertDialog。 ...
Android的版本有很多通常開發的時候對話框大多數使用自定義或是 Google提供的V4,
V7 相容包來開發保持各個版本的對話框樣式統一,所以這裡使用的是V7 包里的AlertDialog。
1 import android.app.ProgressDialog; 2 import android.content.DialogInterface; 3 import android.os.Bundle; 4 import android.os.SystemClock; 5 import android.support.v7.app.AlertDialog; 6 import android.support.v7.app.AppCompatActivity; 7 import android.view.View; 8 import android.widget.Toast; 9 10 public class MainActivity extends AppCompatActivity { 11 12 @Override 13 protected void onCreate(Bundle savedInstanceState) { 14 super.onCreate(savedInstanceState); 15 setContentView(R.layout.activity_main); 16 } 17 18 /** 19 * 普通對話框 20 * 21 * @param view 22 */ 23 public void click1(View view) { 24 AlertDialog.Builder builder = new AlertDialog.Builder(this); 25 //設置標題 26 builder.setTitle("用戶安全提示:"); 27 //設置提示消息 28 builder.setMessage("你確定接受用戶隱私條款嗎?"); 29 builder.setPositiveButton("確定", null); 30 builder.setNegativeButton("取消", null); 31 //顯示dialog 32 builder.show(); 33 } 34 35 /** 36 * 單選對話框 37 * 38 * @param view 39 */ 40 public void click2(View view) { 41 AlertDialog.Builder builder = new AlertDialog.Builder(this); 42 //設置標題 43 builder.setTitle("選擇一項你的專業:"); 44 //設置要顯示的item條目 45 final String items[] = {"Java", "C++", "PHP", "Android", "C#", "Python", "MySql"}; 46 //設置item點擊事件 47 builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { 48 @Override 49 public void onClick(DialogInterface dialog, int which) { 50 Toast.makeText(MainActivity.this, "你選擇了:" + items[which], Toast.LENGTH_SHORT).show(); 51 dialog.dismiss(); 52 } 53 }); 54 //顯示dialog 55 builder.show(); 56 } 57 58 /** 59 * 多選對話框 60 * 61 * @param view 62 */ 63 public void click3(View view) { 64 AlertDialog.Builder builder = new AlertDialog.Builder(this); 65 //設置標題 66 builder.setTitle("選擇你的興趣愛好:"); 67 //設置要顯示的item條目 68 final String items[] = {"看書", "玩游戲", "看電影", "打球", "健身", "自駕游", "去酒吧"}; 69 //設置每個條目的選擇狀態 false為沒有選中 true為選中 70 final boolean[] checks = {true, true, false, false, false, false, false}; 71 //設置item點擊事件 條目被選中時 修改checks里的boolean值 72 builder.setMultiChoiceItems(items, checks, new DialogInterface.OnMultiChoiceClickListener() { 73 @Override 74 public void onClick(DialogInterface dialog, int which, boolean isChecked) { 75 checks[which] = isChecked; 76 } 77 }); 78 //設置確定按鈕點擊事件 79 builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { 80 @Override 81 public void onClick(DialogInterface dialog, int which) { 82 StringBuffer buffer = new StringBuffer(); 83 for (int i = 0; i < checks.length; i++) { 84 if (checks[i]) { 85 buffer.append(items[i] + ","); 86 } 87 } 88 Toast.makeText(MainActivity.this, buffer.toString(), Toast.LENGTH_SHORT).show(); 89 } 90 }); 91 builder.setNegativeButton("取消", null); 92 //顯示dialog 93 builder.show(); 94 } 95 96 /** 97 * 進度條對話框 98 * 99 * @param view 100 */ 101 public void click4(View view) { 102 final ProgressDialog dialog = new ProgressDialog(this); 103 dialog.setTitle("請稍等:"); 104 //dialog.setMessage("正在努力載入..."); 105 //dialog.show(); 106 107 //以下的屬性不設置 進度條樣式預設為圓形 108 109 //設置進度最大值為100 110 dialog.setMax(100); 111 //設置進度條樣式為水平 112 dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 113 114 dialog.show(); 115 //模擬一個進度載入過程 116 new Thread() { 117 @Override 118 public void run() { 119 for (int i = 0; i <= 100; i++) { 120 dialog.setProgress(i); 121 //休眠200毫秒 122 SystemClock.sleep(200); 123 } 124 dialog.dismiss(); 125 } 126 }.start(); 127 } 128 }