先看一下效果图
java代码实现如下:
package com.example.dialog;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.DialogInterface;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.text.Layout;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;
public class MainActivity extends Activity {
private Button simp_btn = null;
private Button comp_btn = null;
private Button list_btn = null;
private Button date_btn = null;
private Button time_btn = null;
private Button progress_btn = null;
private Button custom_btn = null;
private String[] place = null;
private int year, month, day, hour, minute;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView txt = (TextView) findViewById(R.id.txt);
// 簡單的Dialog
simp_btn = (Button) findViewById(R.id.simp_btn);
simp_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
AlertDialog.Builder builder = new AlertDialog.Builder(
MainActivity.this).setTitle("提示")
.setIcon(R.drawable.ic_launcher)
.setMessage("這是一個简单对话框");
builder.create().show();
}
});
// 複雜的Dialog
comp_btn = (Button) findViewById(R.id.comp_btn);
comp_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
AlertDialog.Builder builder = new AlertDialog.Builder(
MainActivity.this)
.setTitle("提示")
.setIcon(R.drawable.ic_launcher)
.setMessage("這是一個複雜对话框\n確定要退出程序!!")
.setPositiveButton("確定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this,
"歡迎下次登錄", Toast.LENGTH_SHORT)
.show();
finish();
}
}).setNegativeButton("取消", null);
builder.create().show();
}
});
// 列表Dialog
list_btn = (Button) findViewById(R.id.list_btn);
list_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
place = MainActivity.this.getResources().getStringArray(
R.array.list);
final boolean[] chkDefualt = { false, false, true, true, false };
final List
list = new ArrayList
();
for (int i = 0; i < chkDefualt.length; i++) {
if (chkDefualt[i] == true) {
list.add(place[i]);
}
}
AlertDialog.Builder builder = new AlertDialog.Builder(
MainActivity.this)
.setTitle("选择你要去的景点")
.setIcon(R.drawable.ic_launcher)
.setMultiChoiceItems(place, chkDefualt,
new OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which, boolean isChecked) {
// TODO Auto-generated method stub
if (isChecked) {
if (list.indexOf(place[which]) <= 0)
list.add(place[which]);
} else {
if (list.indexOf(place[which]) >= 0)
list.remove(place[which]);
}
}
})
.setPositiveButton("確定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
StringBuilder builder1 = new StringBuilder();
for (int i = 0; i < list.size(); i++)
builder1.append("\n" + list.get(i));
Toast.makeText(
MainActivity.this,
"你选择了:\n" + builder1.toString(),
Toast.LENGTH_LONG).show();
}
}).setNegativeButton("取消", null);
builder.create().show();
}
});
// 自定义对话框
custom_btn = (Button) findViewById(R.id.custom_btn);
custom_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
final View view = LayoutInflater.from(MainActivity.this)
.inflate(R.layout.view, null);
AlertDialog.Builder builder = new AlertDialog.Builder(
MainActivity.this)
.setTitle("提示")
.setIcon(R.drawable.ic_launcher)
.setView(view)
.setPositiveButton("登陆",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0,
int arg1) {
// TODO Auto-generated method stub
TextView user = (TextView) view
.findViewById(R.id.user_etxt);
TextView pwd = (TextView) view
.findViewById(R.id.pwd_etxt);
String message = "用户名:"
+ user.getText() + "\n密码:"
+ pwd.getText();
txt.setText(message);
Toast.makeText(MainActivity.this,
"你已成功登陆", Toast.LENGTH_LONG)
.show();
}
}).setNegativeButton("取消", null);
builder.create().show();
}
});
// 日期对话框
date_btn = (Button) findViewById(R.id.date_btn);
Calendar calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
date_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Dialog dialog = new DatePickerDialog(MainActivity.this,
new OnDateSetListener() {
@Override
public void onDateSet(DatePicker arg0, int arg1,
int arg2, int arg3) {
// TODO Auto-generated method stub
txt.setText(arg1 + "年" + (arg2 + 1) + "月"
+ arg3 + "日");
}
}, year, month, day);
dialog.show();
}
});
// 时间对话框
Calendar calendar_ = Calendar.getInstance();
time_btn = (Button) findViewById(R.id.time_btn);
hour = calendar_.get(Calendar.HOUR_OF_DAY);
minute = calendar_.get(Calendar.MINUTE);
time_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Dialog dialog = new TimePickerDialog(MainActivity.this,
new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker arg0, int arg1,
int arg2) {
// TODO Auto-generated method stub
txt.setText("时间" + arg1 + ":" + arg2);
}
}, hour, minute, true);
dialog.show();
}
});
// 模糊进度条
progress_btn = (Button) findViewById(R.id.progress_btn);
progress_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
final int MAX = 568;
final ProgressDialog progressDialog = new ProgressDialog(
MainActivity.this);
progressDialog.setTitle("加载文件");
progressDialog.setMessage("努力奋斗中......");
progressDialog
.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMax(MAX);
progressDialog.setButton(ProgressDialog.BUTTON_POSITIVE,
"后台处理", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
progressDialog.dismiss();
}
});
progressDialog.show();
new Thread() {
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < MAX; i++) {
try {
Thread.sleep(10);
progressDialog.setProgress(i);
} catch (Exception e) {
// TODO: handle exception
}
}
try {
progressDialog.setProgress(MAX);
Thread.sleep(1000);
} catch (Exception e) {
// TODO: handle exception
}
progressDialog.dismiss();
}
}.start();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
xml代码如下: