2025-02-09

Java代碼 
package com.lilin.dialog; 
 
//聲明包語句 
import java.util.Calendar; 
 
import android.R.integer; 
import android.app.Activity; 
import android.app.AlertDialog; 
import android.app.DatePickerDialog; 
import android.app.Dialog; 
import android.app.ProgressDialog; 
import android.app.TimePickerDialog; 
import android.app.AlertDialog.Builder; 
import android.content.DialogInterface; 
import android.content.DialogInterface.OnClickListener; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.Message; 
import android.view.KeyEvent; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.widget.Button; 
import android.widget.DatePicker; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.TimePicker; 
 
import com.lilin.alertdialog.R; 
 
public class AlertDialog1 extends Activity implements 
        android.view.View.OnClickListener { 
    final int COMMON_DIALOG = 1; // 普通對話框id 
    final int LIST_DIALOG = 2;// 列表對話框id 
    final int LIST_DIALOG_SINGLE = 3;// 單項按鈕對話框id 
    final int LIST_DIALOG_MULTIPLE = 4;// 復選框對話框id 
    final int DATE_DIALOG = 5;// 日期對話框id 
    final int TIME_DIALOG = 6;// 時間對話框id 
    final int CUSTOM_DIALOG = 7;// 時間對話框id 
 
    boolean[] mulFlags = new boolean[] { false, false, false };// 初始復選情況 
    Calendar calendar = null; // 聲明一個日歷對象 
    final int INCREASE = 0; // Handler消息類型 
    ProgressDialog progressDialog; 
    Handler myHandler; // Handler對象引用 
    EditText et; 
 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setTitle("對話框用法總結"); 
 
        setContentView(R.layout.alertdialog1); 
        et = (EditText) findViewById(R.id.EditText01); 
 
        Button btn = (Button) findViewById(R.id.Button01); 
        btn.setOnClickListener(this); 
        Button btn2 = (Button) findViewById(R.id.Button02); 
        btn2.setOnClickListener(this); 
        Button btn3 = (Button) findViewById(R.id.Button03); 
        btn3.setOnClickListener(this); 
        Button btn4 = (Button) findViewById(R.id.Button04); 
        btn4.setOnClickListener(this); 
        Button btn5 = (Button) findViewById(R.id.Button05); 
        btn5.setOnClickListener(this); 
        Button btn6 = (Button) findViewById(R.id.Button06); 
        btn6.setOnClickListener(this); 
    } 
 
    // 重寫onCreateDialog方法 
    @Override 
    protected Dialog onCreateDialog(int id) { 
        /* 根據id顯示不同的對話框 */ 
        Dialog dialog = null; // 聲明一個Dialog對象用於返回 
        switch (id) { 
        // 普通對話框 
        case COMMON_DIALOG: 
 
            Builder builder = new AlertDialog.Builder(this); 
            builder.setIcon(R.drawable.header); // 設置對話框的圖標 
            builder.setTitle("普通對話框"); // 設置對話框的標題 
            builder.setMessage("對話框的內容—–"); // 設置對話框的顯示內容 
            builder.setPositiveButton( // 添加按鈕 
                    "確定", new OnClickListener() { // 為按鈕添加監聽器 
                        @Override 
                        public void onClick(DialogInterface dialog, int which) { 
 
                            et.setText("對話框的內容—–");// 設置EditText內容 
                        } 
                    }); 
            dialog = builder.create(); // 生成Dialog對象 
            break; 
        // 列表對話框 
        case LIST_DIALOG: 
            Builder b = new AlertDialog.Builder(this); // 創建Builder對象 
            b.setIcon(R.drawable.header); // 設置圖標 
            b.setTitle("列表對話框"); // 設置標題 
            b.setItems( // 設置列表中的各個屬性 
                    R.array.msa, // 字符串數組 
                    new DialogInterface.OnClickListener() { // 為列表設置OnClickListener監聽器 
                        @Override 
                        public void onClick(DialogInterface dialog, int which) { 
 
                            et 
                                    .setText("您選擇瞭:" 
                                            + getResources().getStringArray( 
                                                    R.array.msa)[which]); 
                        } 
                    }); 
            dialog = b.create(); // 生成Dialog對象 
            break; 
        // 單項按鈕對話框 
        case LIST_DIALOG_SINGLE: 
            b = new AlertDialog.Builder(this); // 創建Builder對象 
            b.setIcon(R.drawable.header); // 設置圖標 
            b.setTitle("單項按鈕對話框"); // 設置標題 
            b.setSingleChoiceItems( // 設置單選列表選項 
                    R.array.msa, 0, new DialogInterface.OnClickListener() { 
                        @Override 
                        public void onClick(DialogInterface dialog, int which) { 
 
                            et 
                                    .setText("您選擇瞭:" 
                                            + getResources().getStringArray( 
                                                    R.array.msa)[which]); 
                        } 
                    }); 
            b.setPositiveButton( // 添加一個按鈕 
                    R.string.ok, // 按鈕顯示的文本 
                    new DialogInterface.OnClickListener() { 
                        @Override 
                        public void onClick(DialogInterface dialog, int which) { 
                        } 
                    }); 
            dialog = b.create(); // 生成Dialog對象 
            break; 
        // 復選框對話框 
        case LIST_DIALOG_MULTIPLE: 
            b = new AlertDialog.Builder(this); // 創建Builder對象 
            b.setIcon(R.drawable.header); // 設置圖標 
            b.setTitle("復選框對話框"); // 設置標題 
            b.setMultiChoiceItems( // 設置多選選項 
                    R.array.msa, mulFlags, // 傳入初始的選中狀態 
                    new DialogInterface.OnMultiChoiceClickListener() { 
                        @Override 
                        public void onClick(DialogInterface dialog, int which, 
                                boolean isChecked) { 
                            mulFlags[which] = isChecked; // 設置選中標志位 
                            String result = "您選擇瞭:"; 
                            for (int i = 0; i < mulFlags.length; i++) { 
                                if (mulFlags[i]) { // 如果該選項被選中 
                                    result = result 
                                            + getResources().getStringArray( 
                                                    R.array.msa)[i] + "、"; 
                                } 
                            } 
 
                            et 
                                    .setText(result.substring(0, result 
                                            .length() – 1));// 設置EditText顯示的內容 
                        } 
                    }); 
            b.setPositiveButton( // 添加按鈕 
                    R.string.ok, new DialogInterface.OnClickListener() { 
                        @Override 
                        public void onClick(DialogInterface dialog, int which) { 
                        } 
                    }); 
            dialog = b.create(); // 生成Dialog方法 
            break; 
        // 日期對話框 
        case DATE_DIALOG: 
            calendar = Calendar.getInstance();// 獲取日期對象 
            dialog = new DatePickerDialog( // 創建DatePickerDialog對象 
                    this, new DatePickerDialog.OnDateSetListener() { // 創建OnDateSetListener監聽器 
                        @Override 
                        public void onDateSet(DatePicker dp, int year, 
                                int month, int dayOfMonth) { 
 
                            et.setText("您選擇瞭:" + year + "年" + month + "月" 
                                    + dayOfMonth + "日"); 
                        } 
                    }, calendar.get(Calendar.YEAR), // 傳入年份 
                    calendar.get(Calendar.MONTH), // 傳入月份 
                    calendar.get(Calendar.DAY_OF_MONTH) // 傳入天數 
            ); 
            break; 
 
        // 時間對話框 
        case TIME_DIALOG: 
            calendar = Calendar.getInstance();// 獲取日期對象 
            dialog = new TimePickerDialog( // 創建TimePickerDialog對象 
                    this, new TimePickerDialog.OnTimeSetListener() { // 創建OnTimeSetListener監聽器 
                        @Override 
                        public void onTimeSet(TimePicker tp, int hourOfDay, 
                                int minute) { 
 
                            et 
                                    .setText("您選擇瞭:" + hourOfDay + "時" + minute 
                                            + "分"); // 設置EditText控件的屬性 
                        } 
                    }, calendar.get(Calendar.HOUR_OF_DAY), // 傳入當前小時數 
                    calendar.get(Calendar.MINUTE), // 傳入當前分鐘數 
                    false); 
            break; 
        // 自定義 
        case CUSTOM_DIALOG: 
            builder = new AlertDialog.Builder(this); 
            builder.setTitle("經辦過程和處理意見"); 
            builder.setPositiveButton("確定", 
                    new DialogInterface.OnClickListener() { 
 
                        @Override 
                        public void onClick(DialogInterface dialog, int which) { 
 
                        } 
                    }); 
            LayoutInflater inflater = LayoutInflater.from(this);// 渲染器 
            View view = inflater.inflate(R.layout.opinionsdialog, null); 
 
            TextView tv1 = (TextView) view.findViewById(R.id.tv_dialog_12); 
            TextView tv2 = (TextView) view.findViewById(R.id.tv_dialog_22); 
            TextView tv3 = (TextView) view.findViewById(R.id.tv_dialog_32); 
            TextView tv4 = (TextView) view.findViewById(R.id.tv_dialog_42); 
 
            tv1.setText("擬稿"); 
            tv2.setText("admin"); 
            tv3.setText("2011/8/25"); 
            tv4.setText("同意"); 
 
            builder.setView(view);// 
            dialog = builder.create(); 
            break; 
        default: 
            break; 
        } 
 
        return dialog; // 返回生成Dialog的對象 
    } 
 
    /**
     * 按鍵事件
     */ 
    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        // TODO Auto-generated method stub 
        switch (keyCode) { 
        case KeyEvent.KEYCODE_DPAD_RIGHT: 
            // Intent intent = new Intent(); 
            // intent.setClass(Main.this, Main2.class); 
            // startActivity(intent); 
            break; 
        case KeyEvent.KEYCODE_DPAD_LEFT: 
            // intent = new Intent(); 
            // intent.setClass(Main.this, Main5.class); 
            // startActivity(intent); 
            break; 
        } 
        return super.onKeyDown(keyCode, event); 
    } 
 
    @Override 
    public void onClick(View v) { 
        // TODO Auto-generated method stub 
        int id = v.getId(); 
 
        switch (id) { 
        case R.id.Button01: 
            showDialog(COMMON_DIALOG); 
            break; 
        case R.id.Button02: 
            showDialog(LIST_DIALOG); 
            break; 
        case R.id.Button03: 
            showDialog(LIST_DIALOG_SINGLE); 
            break; 
        case R.id.Button04: 
            showDialog(LIST_DIALOG_MULTIPLE); 
            break; 
        case R.id.Button05: 
            showDialog(DATE_DIALOG); 
            break; 
        case R.id.Button06: 
            showDialog(TIME_DIALOG); 
            break; 
        case R.id.Button07: 
            showDialog(CUSTOM_DIALOG); 
            break; 
        default: 
            break; 
        } 
 
    } 
 

 
Xml代碼 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent">                                     <!– 聲明一個線性佈局 –> 
    <EditText android:text="" android:id="@+id/EditText01" 
        android:layout_width="fill_parent" android:layout_height="wrap_content" 
        android:editable="false" android:cursorVisible="false" />                                    <!– 聲明一個EditText控件 –> 
    <Button android:text="@string/btn" android:id="@+id/Button01" 
        android:layout_width="fill_parent" android:layout_height="wrap_content" /> 
    <Button android:text=" 列表對話框" android:id="@+id/Button02" 
        android:layout_width="fill_parent" android:layout_height="wrap_content" /> 
    <Button android:text=" 單選按鈕對話框" android:id="@+id/Button03" 
        android:layout_width="fill_parent" android:layout_height="wrap_content" /> 
    <Button android:text=" 復選框按鈕對話框" android:id="@+id/Button04" 
        android:layout_width="fill_parent" android:layout_height="wrap_content" /> 
    <Button android:text=" 日期選擇對話框" android:id="@+id/Button05" 
        android:layout_width="fill_parent" android:layout_height="wrap_content" /> 
    <Button android:text=" 時間選擇對話框" android:id="@+id/Button06" 
        android:layout_width="fill_parent" android:layout_height="wrap_content" /> 
    <Button android:text="自定義對話框" android:id="@+id/Button07" 
        android:layout_width="fill_parent" android:layout_height="wrap_content" /> 
    <!– 聲明一個Button控件 –> 
</LinearLayout> 

作者“AndLi”
 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *