1、普通的对话框

  

    

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" > <ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> </LinearLayout>

Dialog_progress.xml

 public class MyDialog extends Dialog{

     //必须要给构造方法
public MyDialog(Context context) {
//也可以在构建Dialog对象的时候就给指定Dialog样式
//使用主题来修改Dialog样式,在res/values/styles.xml中添加自定义主题
super(context,R.style.DialogTheme);
} @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//这个可以不要标题。通过getWindow().requestFeature(featureId)方法
//getWindow().requestFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.dialog_progress);
} /**
* 一个Activity或者一个Dialog刚刚出现在用户面前的时候,焦点改变调用onWindowFocusChanged
*/
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
}
}

MyDialog

 // 普通对话框
public void dialog1(View v) {
MyDialog dialog = new MyDialog(this);
dialog.setTitle("这是进度Dialog");
// 显示对话框
dialog.show(); // 关闭对话框用
// dialog.dismiss();
}

普通对话框

2、警告对话框AlertDialog setMessage

 //AlertDialog  setMessage
public void dialog2(View v) {
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setTitle("警告!").setIcon(R.drawable.ic_launcher)
.setMessage("前方高能")
// 注意这个导的包是import android.content.DialogInterface.OnClickListener;
.setPositiveButton("OK", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "您选择了OK",
Toast.LENGTH_SHORT).show(); }
})
.setNegativeButton("Cancel", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "您选择了Cancel",
Toast.LENGTH_SHORT).show();
}
})
.setNeutralButton("Ignore", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "您选择了Ignore",
Toast.LENGTH_SHORT).show();
}
})
.create().show();
}

警告对话框,setMessage

3、菜单对话框AlertDialog setItem

 //菜单选择,  setItem 如果设置setMessage,那么只会显示Message
String[] setting = {"声音","存储","显示","应用","语言和输入法","流量使用情况","WLAN"};
public void dialog3(View v){
new AlertDialog.Builder(this)
.setTitle("设置")
.setIcon(R.drawable.setting)
//which代表第几项,item点击后自动关闭,不需要Button
.setItems(setting, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, setting[which], Toast.LENGTH_SHORT).show();
}
})
.create().show();
}

菜单对话框 setItem

4、单选对话框AlertDialog setSingleChoiceItems

 //单选对话框,setItem
String[] hobby = {"唱歌","跑步","武术","乒乓球","敲代码"};
int choice = 0;
public void dialog4(View v){
new AlertDialog.Builder(this)
.setTitle("爱好单选")
.setIcon(R.drawable.hobby)
//0代表默认选中第一个,选中不会自动关闭
.setSingleChoiceItems(hobby, 0, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
choice = which;
}
})
//Button上的which永远为0,所以这里需要一个变量来保存选中的ItemID
.setPositiveButton("ok", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, hobby[choice], Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("cancel",null)
.create().show();
}

单选对话框 setSingleChoiceItems

5、多选对话框AlertDialog setMultiChoiceItem

 String[] hobby = {"唱歌","跑步","武术","乒乓球","敲代码"};
boolean[] bool = {false,false,false,false,false};
List<String> list = new ArrayList<String>();
public void dialog5(View v){
new AlertDialog.Builder(this)
.setTitle("爱好可多选")
.setIcon(R.drawable.hobby)
//默认选中了哪些,点击也不会自动关闭
.setMultiChoiceItems(hobby, bool, new OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if(isChecked){
list.add(hobby[which]);
}else{
list.remove(hobby[which]);
}
}
})
.setPositiveButton("ok", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, list.toString(), Toast.LENGTH_SHORT).show(); }
}).create().show();
}

多选对话框AlertDialog setMultiChoiceItem

6、适配器对话框AlertDialog setAdapter

 public void dialog6(View v){
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, hobby);
new AlertDialog.Builder(this)
.setTitle("适配器对话框")
//和setItem一样,选中之后对话框就自动消失,不需要Button
.setAdapter(adapter, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, hobby[which], Toast.LENGTH_SHORT).show(); }
}).create().show();
}

适配器对话框AlertDialog setAdapter

7、自定义对话框AlertDialog setView

自定义对话框AlertDialog setView

8、关闭对话框AlertDialog dismisson

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"/> <EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="关闭对话框请点击关闭按钮"/> <TextView
android:id="@+id/finish"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="关闭"/> </LinearLayout>

Dialog_dismiss.xml

 public void dialog8(View v){
View layout = getLayoutInflater().inflate(R.layout.dialog_dismiss, null);
TextView finish = (TextView) layout.findViewById(R.id.finish);
final AlertDialog dialog = new AlertDialog.Builder(MainActivity.this)
.setTitle("可关闭的对话框")
.setView(layout)
.create();
dialog.show();
finish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
}); //有时候用户可能点到了外部,dialog就直接关闭了,而程序不知道,这时候就需要设置
dialog.setCancelable(false);
dialog.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
Toast.makeText(MainActivity.this, "关闭", Toast.LENGTH_SHORT).show(); }
});
}

关闭对话框 AlertDialog setView

Android Dialog AlertDialog的更多相关文章

  1. android Dialog&AlertDialog

    Dialog dialog = new Dialog(context,R.style.AppBaseTheme); wifiView = AppData.inflater.inflate(R.layo ...

  2. Android DevArt2:Android 5.0下 Dialog&AlertDialog 并不会影响Activity的生命周期

    先给出结论:Dialog和AlertDialog并不会影响到Activity的生命周期,但会影响到Activity的优先级. 核心代码: onCreated中: Resources resources ...

  3. android dialog

    /** * @Title MenuTest.java * @package com.example.standardview * @since * @version 1.0.0 * @author V ...

  4. Android:AlertDialog对话框

    1.简单的ALertDialog: Dialog alertDialog = new AlertDialog.Builder(this) .setTitle("标题") .setM ...

  5. Android Dialog使用举例

    在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一 ...

  6. 自定义android Dialog

    1.自定义Dialog: import android.app.AlertDialog; import android.app.Dialog; import android.content.Conte ...

  7. Android之AlertDialog.Builder详解

    import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; ...

  8. 【Android】Android在AlertDialog使用大全

    package com.ceac.deng; import android.R.string; import android.support.v7.app.ActionBarActivity; imp ...

  9. Android Dialog对话框

    Dialog的基本方法 //创建Dialog AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); //设 ...

随机推荐

  1. 正则表达式匹配(python)

    获取图片的python代码 #coding=utf-8 import urllib import re def getHtml(url): page = urllib.urlopen(url) htm ...

  2. mssql的holdlock锁跟索引的关系

    表锁tablock是会给表所有数据附加共享锁,但是只是当前语句有效,语句执行完毕,锁释放,而不会持续到事务结束,而tablockX表锁是持续到事务结束的锁 holdlock锁,锁定的范围会根据wher ...

  3. centos5.2 x86 安装 oracle 11g2r 日志

    一.安装centos 二.安装ora所需的库 三.修改centos内核 四.建用户组和目录结构等 五.安装ora11g2r 六.安装sqlplus的翻页程序和help补丁 七.自启动脚本 八.常用命令 ...

  4. Java 取整

    向上取整用Math.ceil(double a) 向下取整用Math.floor(double a) 举例: public static void main(String[] args) throws ...

  5. 认识CSS样式

    CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要是用于定义HTML内容在浏览器内的显示样式,如文字大小.颜色.字体加粗等. 如下列代码: p{ font-size: ...

  6. C# Word

    C# 操作word文档 1.c#操作word 在指定书签插入文字或者图片  1using Word = Microsoft.Office.Interop.Word; 2 3object Nothing ...

  7. UVA - 12627 Erratic Expansion 奇怪的气球膨胀 (分治)

    紫书例题p245 Piotr found a magical box in heaven. Its magic power is that if you place any red balloon i ...

  8. ExtJs MVC应用架构示例

    项目目录结构 (源码)2. app.js Ext.Loader.setConfig({ enabled : true, paths : { 'Ext' : 'extjs', 'App' : 'app' ...

  9. 转:精美jQuery插件及源码 前端开发福利

    原文来自于:http://www.html5tricks.com/pretty-jquery-plugin.html jQuery是一个非常不错的javascript框架,很多前端开发者喜欢的原因不仅 ...

  10. C++访问权限【原创】

    可以访问private的有:1.本类的函数:2.友元函数.   可以访问protected的有:1.本类的函数:2.子类函数:3.友元函数.   可以访问public的有:1.本类的函数和对象:2.子 ...