`
yq135314
  • 浏览: 255990 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Dialog的创建

 
阅读更多

代码来自于APIDemo

 

1. 最简单的OK/Cancel的弹出框

//创建新的弹出框 
new AlertDialog.Builder(AlertDialogSamples.this)
            //设置弹出框的图标
                .setIcon(R.drawable.alert_dialog_icon)
                //弹出框的标题
                .setTitle(R.string.alert_dialog_two_buttons_title)
                //OK按钮的设置,以及对应的onClick事件
                .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
//onClick事件的具体实现
              }
                })
                //Cancel按钮的设置,以及对应的onClick事件 
                .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {

                     //onClick事件的具体实现
                    }
                })
                .create();

 效果图:

 


2. 带有List的弹出框

//创建带有Item的弹出框 
  return new AlertDialog.Builder(AlertDialogSamples.this)
            //设置弹出框的标题
                .setTitle(R.string.select_dialog)
                //设置item的具体内容,R.array.select_dialog_items是定义在XML中的文件,也可以是new String[]{"a","b" ……}的数组
                .setItems(R.array.select_dialog_items, new DialogInterface.OnClickListener() {
                //选中Item时产生的事件
                    public void onClick(DialogInterface dialog, int which) {
                        /* User clicked so do some stuff */
                        String[] items = getResources().getStringArray(R.array.select_dialog_items);
                        new AlertDialog.Builder(AlertDialogSamples.this)
                                .setMessage("You selected: " + which + " , " + items[which])
                        //直接显示,显示之前用户没有什么其它的额外操作        
                                .show();
                    }
                })
                //显示之前,用户可能有额外的操作
                .create();

 

 对应的XML文件:

 

<xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- Used in app/dialog examples -->
    <string-array name="select_dialog_items">
        <item>Command one</item>
        <item>Command two</item>
        <item>Command three</item>
        <item>Command four</item>
    </string-array>
</resources>

效果图:

 

 

3. 进度条式的弹出框的实现//创建一个进度条式的弹出框

            mProgressDialog = new ProgressDialog(AlertDialogSamples.this);
            //设置图标
            mProgressDialog.setIcon(R.drawable.alert_dialog_icon);
            //设置标题
            mProgressDialog.setTitle(R.string.select_dialog);
            //设置进度条的显示方式(水平的)
            mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            //设置进度条的最大值
            mProgressDialog.setMax(MAX_PROGRESS);
            //设置按钮
            mProgressDialog.setButton(getText(R.string.alert_dialog_hide), new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                }
            });
            mProgressDialog.setButton2(getText(R.string.alert_dialog_cancel), new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                }
            });

效果图:

 

 

4. 单选式弹出框的实现

 

	//单选按钮式的弹出框
            return new AlertDialog.Builder(AlertDialogSamples.this)
                .setIcon(R.drawable.alert_dialog_icon)
                .setTitle(R.string.alert_dialog_single_choice)
                //设置单选按钮的集合,同理该处可以来自于XML,也可以是String[]{}的实现
                .setSingleChoiceItems(R.array.select_dialog_items2, 0, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                    }
                })
                .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                    }
                })
                .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                    }
                })
               .create();

效果图:

 

 

 

5. 多选弹出框的实现

 

//其道理与上相同,只是一个单选一个多选 
return new AlertDialog.Builder(AlertDialogSamples.this)
                .setIcon(R.drawable.ic_popup_reminder)
                .setTitle(R.string.alert_dialog_multi_choice)
                .setMultiChoiceItems(R.array.select_dialog_items3,
                        new boolean[]{false, true, false, true, false, false, false},
                        new DialogInterface.OnMultiChoiceClickListener() {
                            public void onClick(DialogInterface dialog, int whichButton,
                                    boolean isChecked) {
                            }
                        })
                .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                    }
                })
                .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                    }
                })
               .create();

效果图:

 

 

 

6. 自定义布局弹出框 

//用于加载布局文件

 LayoutInflater factory = LayoutInflater.from(this);
            //从XML中加载布局
            final View textEntryView = factory.inflate(R.layout.alert_dialog_text_entry, null);
            return new AlertDialog.Builder(AlertDialogSamples.this)
                .setIcon(R.drawable.alert_dialog_icon)
                .setTitle(R.string.alert_dialog_text_entry)
                //关键在这里,将这个布局加入到这个弹出框中
                .setView(textEntryView)
                .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        /* User clicked OK so do some stuff */
                    }
                })
                .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {

                        /* User clicked cancel so do some stuff */
                    }
                })
                .create();

效果图:

 

 

分享到:
评论

相关推荐

    各种Android Dialog创建及其监听事件实现

    我们经常会需要在Android界面上弹出一些对话框 比如询问用户或者让用户选择 关于Android Dialog的使用方法 已经有很多blog做出了详细的介绍(比如博客:7种形式的Android Dialog使用举例) 但是只是给出了创建各种...

    自定义Android Dialog EditText 密码输入框

    首先,创建自定义Dialog需要继承`AppCompatDialogFragment`类,这是因为`AppCompatDialogFragment`提供了对Android支持库的支持,可以在各种版本的Android设备上运行。在自定义类中,我们需要重写`onCreateDialog`...

    百度地图中自定义Dialog

    首先,我们需要为Dialog创建一个XML布局文件。这个布局文件将包含Dialog中显示的所有视图元素,如TextView、Button、ImageView等。例如,我们可以创建一个名为`dialog_map_info.xml`的布局文件,并在其中定义所需...

    自定义dialog,带支付随机数字键盘的dialog;

    1. 创建布局文件:首先,我们需要为Dialog创建一个XML布局文件,定义Dialog的内容和结构。在这个例子中,可能包含一个输入框用于接收用户输入的支付金额,以及一个随机数字键盘。 2. 创建Dialog类:继承自`...

    Custom_Dialog_Usage

    在`res/values/styles.xml`中定义一个自定义主题,然后在Dialog创建时应用这个主题。 自定义Dialog的灵活性非常高,可以实现各种复杂的用户交互场景。通过熟练掌握上述步骤,开发者可以根据项目需求创建出符合设计...

    圆角Dialog

    首先,我们需要为Dialog创建一个XML布局文件,例如`dialog_custom_round.xml`,在这个文件中定义Dialog的视图元素,如TextView、Button等,并设置合适的布局参数。为了实现圆角效果,可以为Dialog的根布局(通常是...

    用Dialog实现的主动弹出式气泡

    1. **自定义布局**:由于标准的Dialog样式可能无法满足气泡效果,我们需要为Dialog创建一个自定义的布局文件。这个布局应该包含气泡形状的背景、内容文字、箭头指示等元素。可以使用ShapeDrawable来定义气泡的形状,...

    Android自定义dialogDemo

    - 创建布局:首先,你需要为Dialog创建一个单独的XML布局文件,这个文件将定义Dialog显示的内容和布局。 - 创建Dialog类:创建一个继承自`AppCompatDialog`或者`AlertDialog.Builder`的自定义类。在这个类中,你...

    android自定义Dialog的简单实现

    1. 创建布局文件:首先,我们需要为Dialog创建一个自定义的XML布局文件,这可以在`res/layout`目录下完成。布局文件可以包含任何视图组件,如TextView、EditText、ImageView等,以满足你想要展示的界面设计。 2. ...

    VC中Dialog添加View(ScrollView)

    在Microsoft Visual C++ (VC) 的MFC(Microsoft Foundation Classes)框架中,Dialog是一个非常重要的组件,用于创建用户界面中的对话框。对话框通常包含各种控件,如按钮、文本框等,但有时我们需要在对话框中添加更...

    Android自定义Dialog弹窗提示

    如果需要更复杂的交互,例如添加自定义的View或者动画,可以在Dialog创建后进行进一步的定制。例如,可以使用`dialog.getWindow().getAttributes()`来获取Window属性,从而改变背景颜色、透明度或者动画效果。 总结...

    自定义对话框LoadingDialog和Toast

    1. 创建布局文件:首先,我们需要为Dialog创建一个XML布局文件,比如`dialog_loading.xml`,在其中添加所需的UI元素,如文本、图片或者Gif视图。 ```xml android:id="@+id/gif_view" android:layout_width=...

    安卓Android源码——所有Dialog对话框.zip

    这包括自定义布局XML文件,然后在Dialog的构造函数中加载这个布局,或者直接在代码中创建View对象并添加到Dialog中。 6. DialogFragment 在Android 3.0及以上版本,引入了DialogFragment,它是一个可以托管Dialog的...

    自定义dialog及其他工具类库

    1. 创建布局文件:为Dialog创建一个单独的XML布局文件,其中可以包含你需要展示的元素,如按钮、文本、图片等。 2. 创建Dialog类:继承自`DialogFragment`或`AlertDialog.Builder`,并重写`onCreateDialog()`方法,...

    分享弹出Dialog

    1. **创建布局文件**:首先,我们需要为Dialog创建一个XML布局文件,该文件定义了Dialog的界面元素,例如按钮、文本框等。在"分享弹出Dialog"的场景中,布局可能包括一个标题、一个分享内容的预览区以及一系列可选择...

    Android 创建自定Dialog

    在Android开发中,创建自定义Dialog是提升用户体验和界面设计灵活性的重要手段。Dialog通常用于向用户展示临时信息或请求用户的确认操作,而自定义Dialog则允许开发者根据需求定制其外观和功能。这篇博客将深入探讨...

    安卓Dialog对话框相关-Custom-Dialog.zip

    1. 创建一个新的布局文件:在res/layout目录下,为Dialog创建一个XML布局文件,定义Dialog的内容和外观。可以包括按钮、文本、输入框等组件。 2. 创建Dialog类:继承自Android的Dialog或AlertDialog类,重写...

    Android菊花加载,方便的dialog加载

    1. **创建布局资源文件**:首先,我们需要为Dialog创建一个XML布局文件,如`loading_dialog.xml`。在这个文件中,我们将包含一个ProgressBar组件,可以设置其样式为圆形旋转动画。 ```xml android:layout_width=...

    自定义Dialog里listview的单选、多选

    在Android开发中,自定义Dialog是一种常见的用户交互...这个过程涉及到Android的Dialog创建、ListView的选择模式、事件监听以及数据持久化等多个知识点,理解并掌握这些,能够帮助开发者构建更加丰富的用户交互体验。

    所有Dialog对话框.zip

    - 自定义布局:为Dialog创建XML布局文件,然后在代码中加载。 3. **Dialog显示与关闭** - 调用 `dialog.show()` 显示对话框,`dialog.dismiss()` 关闭对话框。 - 需要注意对话框与Activity的关系,避免内存泄漏...

Global site tag (gtag.js) - Google Analytics