Android Dialog大全 Dialog的使用
2016-05-27 09:45
429 查看
1.该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式。
![](http://img2.tgbusdata.cn/v2/thumb/jpg/MEEwNSw1ODAsMTAwLDQsMywxLC0xLDAscms1MCw2MS4xNTIuMjQyLjEx/u/android.tgbus.com/Android/UploadFiles_4504/201107/2011071511044998.jpg)
代码:
创建对话框方法dialog()
protected void dialog() {
AlertDialog.Builder builder = new Builder(Main.this);
builder.setMessage("确认退出吗?");
builder.setTitle("提示");
builder.setPositiveButton("确认", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Main.this.finish();
}
});
builder.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
}
在onKeyDown(int keyCode, KeyEvent event)方法中调用此方法
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
dialog();
}
return false;
}
![](http://img2.tgbusdata.cn/v2/thumb/jpg/OTk0RSw1ODAsMTAwLDQsMywxLC0xLDAscms1MCw2MS4xNTIuMjQyLjEx/u/android.tgbus.com/Android/UploadFiles_4504/201107/2011071511075164.jpg)
![](http://img2.tgbusdata.cn/v2/thumb/jpg/OTcwQyw1ODAsMTAwLDQsMywxLC0xLDAscms1MCw2MS4xNTIuMjQyLjEx/u/android.tgbus.com/Android/UploadFiles_4504/201107/2011071511085502.jpg)
new AlertDialog.Builder(this).setTitle("复选框").setMultiChoiceItems(
new String[] { "Item1", "Item2" }, null, null)
.setPositiveButton("确定", null)
.setNegativeButton("取消", null).show();
5.信息内容是一组多选框
![](http://img2.tgbusdata.cn/v2/thumb/jpg/RUE4Niw1ODAsMTAwLDQsMywxLC0xLDAscms1MCw2MS4xNTIuMjQyLjEx/u/android.tgbus.com/Android/UploadFiles_4504/201107/2011071511120587.jpg)
new AlertDialog.Builder(this).setTitle("单选框").setIcon(
android.R.drawable.ic_dialog_info).setSingleChoiceItems(
new String[] { "Item1", "Item2" }, 0,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).setNegativeButton("取消", null).show();
![](http://img2.tgbusdata.cn/v2/thumb/jpg/MDc4OCw1ODAsMTAwLDQsMywxLC0xLDAscms1MCw2MS4xNTIuMjQyLjEx/u/android.tgbus.com/Android/UploadFiles_4504/201107/2011071511130034.jpg)
new AlertDialog.Builder(this).setTitle("列表框").setItems(
new String[] { "Item1", "Item2" }, null).setNegativeButton(
"确定", null).show();
7.信息内容是一个自定义的布局
![](http://img2.tgbusdata.cn/v2/thumb/jpg/OEU1Myw1ODAsMTAwLDQsMywxLC0xLDAscms1MCw2MS4xNTIuMjQyLjEx/u/android.tgbus.com/Android/UploadFiles_4504/201107/2011071511144279.jpg)
布局文件
![](http://img2.tgbusdata.cn/v2/thumb/jpg/MEEwNSw1ODAsMTAwLDQsMywxLC0xLDAscms1MCw2MS4xNTIuMjQyLjEx/u/android.tgbus.com/Android/UploadFiles_4504/201107/2011071511044998.jpg)
代码:
创建对话框方法dialog()
protected void dialog() {
AlertDialog.Builder builder = new Builder(Main.this);
builder.setMessage("确认退出吗?");
builder.setTitle("提示");
builder.setPositiveButton("确认", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Main.this.finish();
}
});
builder.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
}
在onKeyDown(int keyCode, KeyEvent event)方法中调用此方法
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
dialog();
}
return false;
}
2.改变了对话框的图表,添加了三个按钮 <img class="attimg" src="http://img2.tgbusdata.cn/v2/thumb/jpg/NTYwMCw1ODAsMTAwLDQsMywxLC0xLDAscms1MCw2MS4xNTIuMjQyLjEx/u/android.tgbus.com/Android/UploadFiles_4504/201107/2011071511063000.jpg" height="456" width="326" alt="" /><pre name="code" class="java"> Dialog dialog = new AlertDialog.Builder(this).setIcon( android.R.drawable.btn_star).setTitle("喜好调查").setMessage( "你喜欢李连杰的电影吗?").setPositiveButton("很喜欢", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(Main.this, "我很喜欢他的电影。", Toast.LENGTH_LONG).show(); } }).setNegativeButton("不喜欢", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(Main.this, "我不喜欢他的电影。", Toast.LENGTH_LONG) .show(); } }).setNeutralButton("一般", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(Main.this, "谈不上喜欢不喜欢。", Toast.LENGTH_LONG) .show(); } }).create(); dialog.show();
3.信息内容是一个简单的View类型
![](http://img2.tgbusdata.cn/v2/thumb/jpg/OTk0RSw1ODAsMTAwLDQsMywxLC0xLDAscms1MCw2MS4xNTIuMjQyLjEx/u/android.tgbus.com/Android/UploadFiles_4504/201107/2011071511075164.jpg)
new AlertDialog.Builder(this).setTitle("请输入").setIcon( android.R.drawable.ic_dialog_info).setView( new EditText(this)).setPositiveButton("确定", null) .setNegativeButton("取消", null).show(); 4.信息内容是一组单选框
![](http://img2.tgbusdata.cn/v2/thumb/jpg/OTcwQyw1ODAsMTAwLDQsMywxLC0xLDAscms1MCw2MS4xNTIuMjQyLjEx/u/android.tgbus.com/Android/UploadFiles_4504/201107/2011071511085502.jpg)
new AlertDialog.Builder(this).setTitle("复选框").setMultiChoiceItems(
new String[] { "Item1", "Item2" }, null, null)
.setPositiveButton("确定", null)
.setNegativeButton("取消", null).show();
5.信息内容是一组多选框
![](http://img2.tgbusdata.cn/v2/thumb/jpg/RUE4Niw1ODAsMTAwLDQsMywxLC0xLDAscms1MCw2MS4xNTIuMjQyLjEx/u/android.tgbus.com/Android/UploadFiles_4504/201107/2011071511120587.jpg)
new AlertDialog.Builder(this).setTitle("单选框").setIcon(
android.R.drawable.ic_dialog_info).setSingleChoiceItems(
new String[] { "Item1", "Item2" }, 0,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).setNegativeButton("取消", null).show();
6.信息内容是一组简单列表项
![](http://img2.tgbusdata.cn/v2/thumb/jpg/MDc4OCw1ODAsMTAwLDQsMywxLC0xLDAscms1MCw2MS4xNTIuMjQyLjEx/u/android.tgbus.com/Android/UploadFiles_4504/201107/2011071511130034.jpg)
new AlertDialog.Builder(this).setTitle("列表框").setItems(
new String[] { "Item1", "Item2" }, null).setNegativeButton(
"确定", null).show();
7.信息内容是一个自定义的布局
![](http://img2.tgbusdata.cn/v2/thumb/jpg/OEU1Myw1ODAsMTAwLDQsMywxLC0xLDAscms1MCw2MS4xNTIuMjQyLjEx/u/android.tgbus.com/Android/UploadFiles_4504/201107/2011071511144279.jpg)
布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="#ffffffff" android:orientation="horizontal" android:id="@+id/dialog"> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/tvname" android:text="姓名:" /> <EditText android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/etname" android:minWidth="100dip"/> </LinearLayout> 调用代码 LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.dialog, (ViewGroup) findViewById(R.id.dialog)); new AlertDialog.Builder(this).setTitle("自定义布局").setView(layout) .setPositiveButton("确定", null) .setNegativeButton("取消", null).show();
相关文章推荐
- 谷歌取得巨大胜利,美联邦法庭裁定 Android 对 Java API 属于“公平使用”
- Android Please ensure that adb is correctly located at问题解决,重启就好,别的都扯淡
- Android Studio目录结构浅析
- Android开发中常见错误与开发小技巧
- Android布局详解之一:FrameLayout
- Android学习笔记(四十):Preference的使用
- 【Android】26、如何编写程序界面
- Android NDK and pthread
- Android基础知识:android新特性
- Android之内存优化(一)
- Android 利用工具实现一键自动findViewById功能
- android环境下两种md5加密方式
- Android 6.0+ 运行时权限探索
- 【Android 基础】Animation 动画介绍和实现
- Android中的Layout_weight(权重)详解
- Android带侧滑菜单的列表
- Android绘图机制与处理技巧(二)——Android图像处理之色彩特效处理
- android studio获取sha1值
- 推荐给Android开发者的抢手书单
- Activity的启动模式