Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 簡析Android多種AlertDialog對話框效果

簡析Android多種AlertDialog對話框效果

編輯:關於Android編程

android提供了四類常用的對話框,本文分享具體實現方法:

  • 1.AlertDialog,功能最豐富,實際運用最廣泛
  • 2.progressDialog,進度條對話框
  • 3.DatePickerDialog,日期選擇對話框
  • 4.TimePickerDialog,時間選擇對話框

這裡主要介紹第一種,剩下的三種都是第一種的子類,所以其方法,都可以直接使用.

創建一個對話框一般需要下面幾個步驟

  • 1.創建AlertDialog.Builder對象
  • 2.對AlertDialog.Builder通過SetTitle來設置標題,SetIcon來設置圖標
  • 3.調用AlertDialog.Builder相關方法來設置內容
  • 4.調用setPositiveButton或者setBegativeButton設置確定和取消按鈕,其中還一個裝飾性按鈕,就不介紹了
  • 5.調用AlertDialog.Builder的create方法進行創建,再調用AlertDialog的show方法即可顯示出來.

下面根據實例一起來看看具體用法

1、簡單文本對話框

定義一個Button為其添加點擊事件,從而啟動AlertDialog對話框,並添加監聽事件

public void simpledialog1(View view){
  AlertDialog.Builder builder = new AlertDialog.Builder(this)
    //設置對話框標題
    .setTitle("簡單文本對話框")
    //設置圖標
    .setIcon(R.mipmap.ic_launcher)
    //設置為簡單文本對話框
    .setMessage("這是一個簡單文本對話框");
    //設置兩個按鈕
    builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
     @Override
     public void onClick(DialogInterface dialog, int which) {
      Toast.makeText(MainActivity.this,"你點擊了確認",Toast.LENGTH_SHORT).show();
     }
    });
    builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
     @Override
     public void onClick(DialogInterface dialog, int which) {
      Toast.makeText(MainActivity.this, "你點擊了取消", Toast.LENGTH_SHORT).show();
     }
    });
    builder.create().show();

 }

2、列表項對話框

和上面的文本對話框不同,列表像是通過一個數組來顯示列表

public void simpledialog2(View view){
  //列表項需要傳入一個數組用於顯示列表
  final String items[] = {"java","php","android","ios"};
  AlertDialog.Builder builder = new AlertDialog.Builder(this)
    //設置對話框標題
    .setTitle("簡單列表項對話框")
      //設置圖標
    .setIcon(R.mipmap.ic_launcher)
      //設置為簡單列表項對話框
    .setItems(items, new DialogInterface.OnClickListener() {
     @Override
     public void onClick(DialogInterface dialog, int which) {
      Toast.makeText(MainActivity.this, "你點擊了" + items[which], Toast.LENGTH_SHORT).show();
     }
    });
  //設置兩個按鈕
  builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
    Toast.makeText(MainActivity.this,"你點擊了確認",Toast.LENGTH_SHORT).show();
   }
  });
  builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
    Toast.makeText(MainActivity.this, "你點擊了取消", Toast.LENGTH_SHORT).show();
   }
  });
  builder.create().show();

 }

3、單選項對話框

和列表項差不多,但是功能足足強了好多,因為傳入的參數可以為數組,也可以是Cursor的查詢結果集,還可以使ListAdapter

public void simpledialog3(View view){
  //列表項需要傳入一個數組用於顯示列表
  final String items[] = {"java","php","android","ios"};
  AlertDialog.Builder builder = new AlertDialog.Builder(this)
    //設置對話框標題
    .setTitle("簡單列表項對話框")
      //設置圖標
    .setIcon(R.mipmap.ic_launcher)
      //設置為簡單單選列表項對話框,1表示默認選擇第二個
    .setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {
     @Override
     public void onClick(DialogInterface dialog, int which) {
      Toast.makeText(MainActivity.this, "你點擊了" + items[which], Toast.LENGTH_SHORT).show();
     }
    });
  //設置兩個按鈕
  builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
    Toast.makeText(MainActivity.this,"你點擊了確認",Toast.LENGTH_SHORT).show();
   }
  });
  builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
    Toast.makeText(MainActivity.this, "你點擊了取消", Toast.LENGTH_SHORT).show();
   }
  });
  builder.create().show();

 }

4、多選項對話框

多選和單選差不多,就多了個Boolean的數組來控制初始選擇值

public void simpledialog4(View view){
  //列表項需要傳入一個數組用於顯示列表
  final String items[] = {"java","php","android","ios"};
  AlertDialog.Builder builder = new AlertDialog.Builder(this)
    //設置對話框標題
    .setTitle("簡單列表項對話框")
      //設置圖標
    .setIcon(R.mipmap.ic_launcher)
      //設置為簡單多選列表項對話框,boolean型變量表示初始選擇的位置
    .setMultiChoiceItems(items, new boolean[]{false, false, false, true}, null);
  //設置兩個按鈕
  builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
    Toast.makeText(MainActivity.this,"你點擊了確認",Toast.LENGTH_SHORT).show();
   }
  });
  builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
    Toast.makeText(MainActivity.this, "你點擊了取消", Toast.LENGTH_SHORT).show();
   }
  });
  builder.create().show();

 }

另外還可以使用SetAdapter方法制作自定義列表項的對話框,或者使用SetView來制作自定義View的對話框。
以後的實例中會逐漸都應用到的,希望大家繼續關注。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved