下面是四种对话框的样式:
package org.mobiletrain.test;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener{
private Button btn1,btn2,btn3,btn4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_layout);
initData();
}
public void initData(){
btn1 = (Button) findViewById(R.id.dialog_btn1);
btn1.setOnClickListener(this);
btn2 = (Button) findViewById(R.id.dalog_btn2);
btn2.setOnClickListener(this);
btn3 = (Button) findViewById(R.id.dalog_btn3);
btn3.setOnClickListener(this);
btn4 = (Button) findViewById(R.id.dalog_btn4);
btn4.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.dialog_btn1:
simpleDialog();
break;
case R.id.dalog_btn2:
simpleListDialog();
break;
case R.id.dalog_btn3:
simpleSingleChoiceDialog();
break;
case R.id.dalog_btn4:
simpleMultiChoiceDialog();
break;
default:
break;
}
}
//确定对话框
private void simpleDialog(){
//创建一个AlertDialog.Builde对象
AlertDialog.Builder builder = new Builder(MainActivity.this);
//设置图标
builder.setIcon(R.drawable.d_ku);
//设置标题
builder.setTitle("提示信息");
//设置内容
builder.setMessage("您确定要退出吗?");
//设置确定和取消按钮
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "您点击了确定按钮", 0).show();
}
});
builder.setNeutralButton("不知道", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "您点击了中间按钮", 0).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "您点击了取消按钮", 0).show();
}
});
//使用AlertDialog.Builder的creat()方法创建一个对话框
// AlertDialog dialog = builder.create();
//显示对话框
// dialog.show();
builder.create().show();
}
//列表对话框,对于列表对话框是不能设置setMessage()属性的,不然列表项会显示不出来
String items[] = {"三国演义","水浒传","红楼梦","西游记"};
List<Integer> list = new ArrayList<Integer>();
private void simpleListDialog(){
AlertDialog.Builder builder = new Builder(MainActivity.this);
builder.setIcon(R.drawable.d_ku);
builder.setTitle("列表对话框");
//创建列表对话框
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "您点击了" + items[which], 0).show();
}
});
builder.create().show();
}
//单选对话框
int singleIndex = 0;
private void simpleSingleChoiceDialog(){
AlertDialog.Builder builder = new Builder(MainActivity.this);
builder.setIcon(R.drawable.d_landelini);
builder.setTitle("单选对话框");
builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
singleIndex = which;
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
toastText("您点击了" + items[singleIndex]);
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
toastText("您点击了取消按钮");
}
});
builder.create().show();
}
//多选对话框
private void simpleMultiChoiceDialog(){
boolean checkedItems[] = {false, false, false, false};
AlertDialog.Builder builder = new Builder(MainActivity.this);
builder.setIcon(R.drawable.d_qinqin);
builder.setTitle("多选对话框");
builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if(isChecked){
list.add(which);
}else{
list.remove(which);
}
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int size = list.size();
String result = "";
for (int i = 0; i < size; i++) {
result += items[list.get(i)];
}
toastText("您点击了" + result);
list.clear();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
toastText("您点击了取消按钮");
}
});
builder.create().show();
}
private void toastText(String meg){
Toast.makeText(MainActivity.this, meg, 0).show();
}
}
下面还有三种我们自定义的对话框:
package org.mobiletrain.test;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
public class SecondActivity extends Activity implements OnClickListener{
private Button btn5,btn6,btn7;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.item_layout);
initData();
}
public void initData(){
btn5 = (Button) findViewById(R.id.dialog_btn5);
btn5.setOnClickListener(this);
btn6 = (Button) findViewById(R.id.dialog_btn6);
btn6.setOnClickListener(this);
btn7 = (Button) findViewById(R.id.dialog_btn7);
btn7.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.dialog_btn5:
simpleCustomAdapterDialog();
break;
case R.id.dialog_btn6:
simpleCustomViewDialog();
break;
case R.id.dialog_btn7:
Intent intent = new Intent();
intent.setClass(SecondActivity.this, ThirdActivity.class);
startActivity(intent);
break;
default:
break;
}
}
String items[] = {"三国演义","西游记","水浒传","红楼梦"};
//实现自定义列表对话框
private void simpleCustomAdapterDialog(){
AlertDialog.Builder builder = new Builder(SecondActivity.this);
builder.setIcon(R.drawable.d_shayan);
builder.setTitle("自定义对话框");
builder.setAdapter(new ArrayAdapter<String>(SecondActivity.this,
android.R.layout.select_dialog_item,items), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(SecondActivity.this, "您点击了"+ items[which], 0).show();
}
});
builder.create().show();
}
//自定义布局的对话框
private void simpleCustomViewDialog(){
//获取自定义的view视图
View view = getLayoutInflater().inflate(R.layout.login_layout, null);
AlertDialog.Builder builder = new Builder(SecondActivity.this);
builder.setIcon(R.drawable.d_shengbing);
builder.setTitle("自定义布局对话框");
//设置视图
builder.setView(view);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//登录的逻辑
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(SecondActivity.this, "您点击了取消按钮", 0).show();
}
});
builder.create().show();
}
}