最近在学习Android开发,总结了Android对话框的各种类型。以下是各种类型的详细代码,源码也可以到下面地址中下载。
http://download.youkuaiyun.com/detail/lxywl09/8545373
0——主页面:
1——弹出按钮的对话框:
2——添加列表对话框:
3——弹出单选对话框:
4——弹出多选对话框:
5——弹出自定义对话框:
package com.develop.camera;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
/**
* Android视图
*
* @author lxy
* @date 2015/03/28
*/
public class DialogDemo extends Activity {
private Button btn_dialog;
private Button btn_addlist;
private Button btn_singlechoice;
private Button btn_multichoice;
private Button btn_selfdefine;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 显示界面
setContentView(R.layout.main);
btn_dialog = (Button) findViewById(R.id.btn_dialog);
// 点击按钮后创建AlertDialog对话框
btn_dialog.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 先创建对话框构造器
AlertDialog.Builder builder = new AlertDialog.Builder(
DialogDemo.this);
// 创建完后设置对话框的属性
// 标题
builder.setMessage("这是你弹出的对话框")
// 不可取消(即返回键不能取消此对话框)
.setCancelable(false)
// 设置第一个按钮的标签及其事件监听器
.setPositiveButton("Positive",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
// 加入自己的行为
}
})
// 设置第二个按钮的标签及其事件监听器
.setNegativeButton("Negative",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
// 加入自己的行为
}
});
// 用对话框构造器创建对话框
AlertDialog alert = builder.create();
// 显示对话框
alert.show();
}
});
/**
* 添加一个列表按钮。为了添加一系列可选择的列表到AlertDialog,可以使用setItems()方法。
* 首先,用setTitle(CharSequence)方法设置对话框的标题。 然后,调用setItems()来添加一系列可选择项,
* 这个方法接收可选项的显示内容数组以及一个定义当用户选中一个项目时
* 所进行的动作的DialogInterface.OnClickListener事件监听器。
*/
btn_addlist = (Button) findViewById(R.id.btn_addlist);
btn_addlist.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
final CharSequence[] items = { "学生", "律师", "教师", "码农" };
AlertDialog.Builder builder = new AlertDialog.Builder(
DialogDemo.this);
builder.setTitle("What's your job?").setItems(items,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(),
items[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
btn_singlechoice = (Button) findViewById(R.id.btn_singlechoice);
btn_singlechoice.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
final CharSequence[] items = { "NanJing", "ShangHai",
"YanChen", "Other.." };
AlertDialog.Builder builder = new AlertDialog.Builder(
DialogDemo.this);
builder.setTitle("Where do you live?");
builder.setSingleChoiceItems(items, -1,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(),
items[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
btn_multichoice = (Button) findViewById(R.id.btn_multichoice);
btn_multichoice.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
final String[] langs = { "海贼王", "名侦探柯南", "火影忍者", "死神" };
final boolean[] selected = new boolean[] { true, false, false,
false };// 一个存放Boolean值的数组
new AlertDialog.Builder(DialogDemo.this)
.setTitle("你喜欢哪些动漫?")
// 标题
.setMultiChoiceItems(
langs,
selected,
new DialogInterface.OnMultiChoiceClickListener() {// 设置多选条目
public void onClick(DialogInterface dialog,
int lang, boolean isChecked) {
Toast.makeText(getApplicationContext(),
langs[lang], Toast.LENGTH_SHORT)
.show();
}
})
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
// do something
}
}).show();
}
});
/**
*
* @author LXY 需要注意的地方: 1)最下面在对话框布局文件上为了找到image及text组件时,是使用的
* dialog.findViewById,不然会程序会出现异常而退出!
* 2)最后不要忘了dialog.show();不然什么都看不到。
*/
btn_selfdefine = (Button) findViewById(R.id.btn_selfdefine);
btn_selfdefine.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Dialog dialog = new Dialog(DialogDemo.this);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("自定义对话框");
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Hello, 这是自定义对话框!");
ImageView image = (ImageView) dialog.findViewById(R.id.image);
image.setImageResource(R.drawable.picture_view);
dialog.show();
}
});
};
}