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”