package com.pas.dialog; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnMultiChoiceClickListener; import android.view.Menu; import android.view.View; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } private void makeToast(String info) { Toast.makeText(this, info, Toast.LENGTH_SHORT).show(); } /** * 通知對話框 */ public void click1(View v) { // 一、獲取構造器 AlertDialog.Builder builder = new Builder(this); builder.setTitle("對話框標題"); // 小圖片 builder.setIcon(R.drawable.ic_launcher); builder.setMessage("是否升級?"); // 4.0開始 肯定在右邊 2.3在左邊 builder.setPositiveButton("肯定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { makeToast("肯定被點擊了"); } }); builder.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 什麼都不作 } }); // AlertDialog alertDialog = builder.create(); // alertDialog.show(); // 簡寫 其內部實現一致 builder.show(); } /** * 單選對話框 * * @param v */ public void click2(View v) { AlertDialog.Builder builder = new Builder(this); builder.setTitle("單選對話框"); final String[] items = new String[] { "條目1", "條目2", "條目3" }; // 設置單選對話框API builder.setSingleChoiceItems(items, 1, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { makeToast(items[which] + "被點擊"); // 關閉對話框 dialog.dismiss(); } }); builder.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 什麼都不作 } }); builder.show(); } /** * 多選對話框 * * @param v */ public void click3(View v) { AlertDialog.Builder builder = new Builder(this); builder.setTitle("多選對話框"); final String[] items = new String[] { "條目1", "條目2", "條目3" }; // 設置單選對話框API boolean[] checks = new boolean[] { true, false, false }; builder.setMultiChoiceItems(items, checks, new OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { makeToast(items[which] + (isChecked == true ? "被選中了" : "沒有選中")); } }); builder.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 什麼都不作 } }); builder.show(); } /** * 進度對話框 * * @param v */ public void click4(View v) { final ProgressDialog dialog = new ProgressDialog(this); dialog.setTitle("提醒"); dialog.setMessage("正在加載……"); dialog.setOnCancelListener(new OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { makeToast("操做取消"); } }); dialog.show(); // 模擬操做取消 new Thread() { @Override public void run() { try { sleep(3000); dialog.cancel(); } catch (InterruptedException e) { e.printStackTrace(); } super.run(); } }.start(); } /** * 進度條對話框 * * @param v */ public void click5(View v) { final ProgressDialog dialog = new ProgressDialog(this); // 設置樣式 水平仍是圓的 dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); dialog.setMax(100); dialog.setIcon(R.drawable.ic_launcher); dialog.setTitle("提醒"); dialog.setMessage("正在加載……"); dialog.setOnCancelListener(new OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { makeToast("操做取消"); } }); dialog.show(); // 模擬操做取消 new Thread() { @Override public void run() { try { for (int i = 0; i < dialog.getMax(); i++) { dialog.setProgress(i + 1); sleep(100); } dialog.dismiss(); super.run(); } catch (InterruptedException e) { e.printStackTrace(); } } }.start(); } }