Android Dialog AlertDialog

1、普通的对话框

  

    

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="match_parent"
 3     android:layout_height="match_parent"
 4     android:gravity="center"
 5     android:orientation="vertical" >
 6
 7     <ProgressBar
 8         android:id="@+id/progressBar1"
 9         style="?android:attr/progressBarStyleLarge"
10         android:layout_width="wrap_content"
11         android:layout_height="wrap_content" />
12
13 </LinearLayout>

Dialog_progress.xml

 1 public class MyDialog extends Dialog{
 2
 3     //必须要给构造方法
 4     public MyDialog(Context context) {
 5         //也可以在构建Dialog对象的时候就给指定Dialog样式
 6         //使用主题来修改Dialog样式,在res/values/styles.xml中添加自定义主题
 7         super(context,R.style.DialogTheme);
 8     }
 9
10     @Override
11     protected void onCreate(Bundle savedInstanceState) {
12         super.onCreate(savedInstanceState);
13         //这个可以不要标题。通过getWindow().requestFeature(featureId)方法
14         //getWindow().requestFeature(Window.FEATURE_NO_TITLE);
15         setContentView(R.layout.dialog_progress);
16     }
17
18     /**
19      * 一个Activity或者一个Dialog刚刚出现在用户面前的时候,焦点改变调用onWindowFocusChanged
20      */
21     @Override
22     public void onWindowFocusChanged(boolean hasFocus) {
23         super.onWindowFocusChanged(hasFocus);
24     }
25 }

MyDialog

 1 // 普通对话框
 2     public void dialog1(View v) {
 3         MyDialog dialog = new MyDialog(this);
 4         dialog.setTitle("这是进度Dialog");
 5         // 显示对话框
 6         dialog.show();
 7
 8         // 关闭对话框用
 9         // dialog.dismiss();
10     }

普通对话框

2、警告对话框AlertDialog setMessage

 1 //AlertDialog  setMessage
 2     public void dialog2(View v) {
 3         AlertDialog.Builder dialog = new AlertDialog.Builder(this);
 4         dialog.setTitle("警告!").setIcon(R.drawable.ic_launcher)
 5                 .setMessage("前方高能")
 6                 // 注意这个导的包是import android.content.DialogInterface.OnClickListener;
 7                 .setPositiveButton("OK", new OnClickListener() {
 8                     @Override
 9                     public void onClick(DialogInterface dialog, int which) {
10                         Toast.makeText(MainActivity.this, "您选择了OK",
11                                 Toast.LENGTH_SHORT).show();
12
13                     }
14                 })
15                 .setNegativeButton("Cancel", new OnClickListener() {
16                     @Override
17                     public void onClick(DialogInterface dialog, int which) {
18                         Toast.makeText(MainActivity.this, "您选择了Cancel",
19                                 Toast.LENGTH_SHORT).show();
20                     }
21                 })
22                 .setNeutralButton("Ignore", new OnClickListener() {
23                     @Override
24                     public void onClick(DialogInterface dialog, int which) {
25                         Toast.makeText(MainActivity.this, "您选择了Ignore",
26                                 Toast.LENGTH_SHORT).show();
27                     }
28                 })
29                 .create().show();
30     }

警告对话框,setMessage

3、菜单对话框AlertDialog setItem

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

菜单对话框 setItem

4、单选对话框AlertDialog setSingleChoiceItems

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

单选对话框 setSingleChoiceItems

5、多选对话框AlertDialog setMultiChoiceItem

 1 String[] hobby = {"唱歌","跑步","武术","乒乓球","敲代码"};
 2     boolean[] bool = {false,false,false,false,false};
 3     List<String> list = new ArrayList<String>();
 4     public void dialog5(View v){
 5         new AlertDialog.Builder(this)
 6         .setTitle("爱好可多选")
 7         .setIcon(R.drawable.hobby)
 8         //默认选中了哪些,点击也不会自动关闭
 9         .setMultiChoiceItems(hobby, bool, new OnMultiChoiceClickListener() {
10             @Override
11             public void onClick(DialogInterface dialog, int which, boolean isChecked) {
12                 if(isChecked){
13                     list.add(hobby[which]);
14                 }else{
15                     list.remove(hobby[which]);
16                 }
17             }
18         })
19         .setPositiveButton("ok", new OnClickListener() {
20             @Override
21             public void onClick(DialogInterface dialog, int which) {
22
23                 Toast.makeText(MainActivity.this, list.toString(), Toast.LENGTH_SHORT).show();
24
25             }
26         }).create().show();
27     }

多选对话框AlertDialog setMultiChoiceItem

6、适配器对话框AlertDialog setAdapter

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

适配器对话框AlertDialog setAdapter

7、自定义对话框AlertDialog setView

自定义对话框AlertDialog setView

8、关闭对话框AlertDialog dismisson

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="match_parent"
 3     android:layout_height="match_parent"
 4     android:orientation="vertical" >
 5     <ImageView
 6         android:layout_width="wrap_content"
 7         android:layout_height="wrap_content"
 8         android:src="@drawable/ic_launcher"/>
 9
10     <EditText
11         android:layout_width="wrap_content"
12         android:layout_height="wrap_content"
13         android:hint="关闭对话框请点击关闭按钮"/>
14
15     <TextView
16         android:id="@+id/finish"
17         android:layout_width="wrap_content"
18            android:layout_height="wrap_content"
19            android:text="关闭"/>
20
21 </LinearLayout>

Dialog_dismiss.xml

 1 public void dialog8(View v){
 2         View layout = getLayoutInflater().inflate(R.layout.dialog_dismiss, null);
 3         TextView finish = (TextView) layout.findViewById(R.id.finish);
 4         final AlertDialog dialog = new AlertDialog.Builder(MainActivity.this)
 5         .setTitle("可关闭的对话框")
 6         .setView(layout)
 7         .create();
 8         dialog.show();
 9         finish.setOnClickListener(new View.OnClickListener() {
10             @Override
11             public void onClick(View v) {
12                 dialog.dismiss();
13             }
14         });
15
16
17         //有时候用户可能点到了外部,dialog就直接关闭了,而程序不知道,这时候就需要设置
18         dialog.setCancelable(false);
19         dialog.setOnDismissListener(new OnDismissListener() {
20             @Override
21             public void onDismiss(DialogInterface dialog) {
22                 Toast.makeText(MainActivity.this, "关闭", Toast.LENGTH_SHORT).show();
23
24             }
25         });
26     }

关闭对话框 AlertDialog setView

时间: 2024-10-13 21:52:52

Android Dialog AlertDialog的相关文章

android Dialog&amp;AlertDialog

Dialog dialog = new Dialog(context,R.style.AppBaseTheme); wifiView = AppData.inflater.inflate(R.layout.wifi_ip_info_form, null); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(wifiView); /* Window dialogWindow = dialog.ge

Android探究2:Android 5.0下 Dialog&amp;AlertDialog 并不会影响Activity的生命周期

先给出结论:Dialog和AlertDialog并不会影响到Activity的生命周期,但会影响到Activity的优先级. 核心代码: onCreated中: Resources resources = this.getResources(); DisplayMetrics displayMetrics = resources.getDisplayMetrics(); final int widthPixels = displayMetrics.widthPixels / 2; final i

Android dialog 全屏

Android中让Dialog全屏: 一.在style中定义样式: <?xml version="1.0" encoding="utf-8"?> <resources> <style name="Transparent"> <item name="android:windowBackground">@color/transparent_background</item>

7种形式的Android Dialog使用举例

7种形式的Android Dialog使用举例 在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一下,Android Dialog的类型无非也就7种,下面我分别向大家介绍这7种Android Dialog对话框的使用方法,希望对大家能有所帮助. 1.该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式. 创建dialog对话框方

Android Dialog 的一些特性

1. Dialog 与 AlertDialog 的区别. AlertDialog 是一种特殊形式的 Dialog.这个类中,我们可以添加一个,两个或者三个按钮,可以设置标题.所以,当我们想使用 AlertDialog 默认的按钮形式,用 AlertDialog 更加方便,而且有一个类 AlertDialog.Builder 很方便创建一个 AlertDialog. 2. Dialog 与 AlertDialog 写代码时需注意的事项. 我们可以给一个 Dialog 用自定义的 Layout.有两

几种不同的Android Dialog

在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一下,Android Dialog的类型无非也就7种,下面我分别向大家介绍这7种Android Dialog对话框的使用方法,希望对大家能有所帮助. 1.该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式. 创建dialog对话框方法代码如下: ? 1 2 3 4 5 6 7 8

Android让AlertDialog点击确定不会消失

在Android的alertDialog中,使用自带的button,点击确定或者取消,都会关闭对话框.但我们有时候希望比如点击确定的时候发现他有没填的选项,我们提示他填写完整,这个时候不关闭对话框.当然解决办法,有很多.比如用个activity做dialog.或者自定义view.使用自己定义的button.不使用自带的button.但是有时候我们的dialog的view很简单,这个时候我们继续使用自带的button.这个时候该怎么办呢.可以利用的java的反射技术.在需要不关闭的按钮地方: tr

Android控件——7种形式的Android Dialog使用举例

在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一下,Android Dialog的类型无非也就7种,下面我分别向大家介绍这7种Android Dialog对话框的使用方法,希望对大家能有所帮助. 1.该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式. 创建dialog对话框方法代码如下: ? 1 2 3 4 5 6 7 8

Android开发AlertDialog解析

打开源码,首先映入眼帘的是三个构造方法,但这三个构造方法都是protected类型的, 可见,不允许我们直接实例化AlertDialog. 因此,我们再看别的有没有方法.可以实例化 再仔细一看,发现一个变量 , AlertController mAlert; 这个才是我们今天的主角,重点研究它. mAlert的定义是在 ,以上我们提到的AlertDialog的构造函数, 此外,我们还发现,AlertDialog中几乎所有的方法都是通过这个mAlert变量来操作的, 也就是说,AlertDialo