`
butter
  • 浏览: 125375 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

分享一个Android中Dialog的使用例子

 
阅读更多

1、新建工程:DialogTest

2、编写布局文件:

(1)、main.xml   代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
    <Button
       android:id="@+id/button01"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="@string/button01"
    />
     <Button
       android:id="@+id/button02"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="@string/button02"
    />
     <Button
       android:id="@+id/button03"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="@string/button03"
    />
     <Button
       android:id="@+id/button04"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="@string/button04"
    />
</LinearLayout>
(2)alert_dialog_text_entry.xml   此部分布局是实现可以用户交互的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
     
    <TextView
      android:id="@+id/username_view"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="20dip"
      android:layout_marginRight="20dip"
      android:text="用户名"
      android:textAppearance="@android:style/TextAppearance.Medium"
    />
    <EditText
      android:id="@+id/username_edit"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_marginLeft="20dip"
      android:layout_marginRight="20dip"
      android:capitalize="none"
      android:textAppearance="@android:style/TextAppearance.Medium"
    />
       <TextView
      android:id="@+id/password_view"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="20dip"
      android:layout_marginRight="20dip"
      android:text="密码"
      android:textAppearance="@android:style/TextAppearance.Medium"
    />
     <EditText
      android:id="@+id/password_edit"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_marginLeft="20dip"
      android:layout_marginRight="20dip"
      android:capitalize="none"
      android:password="true"
      android:textAppearance="@android:style/TextAppearance.Medium"  
    />
</LinearLayout>
3、编写资源文件:strings.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">对话框</string>
    <string name="app_name">Android Dialog</string>
    <string name="button01">两个button的对话框</string>
    <string name="button02">三个button的对话框</string>
    <string name="button03">可以进行输入的对话框</string>
    <string name="button04">进度框</string>
    <string name="alert_dialog_two_buttons_title">这是一个提示框,点击取消后可以返回。</string>
    <string name="alert_dialog_ok">确定</string>
    <string name="alert_dialog_cancle">取消</string>
    <string name="alert_dialog_three_buttons_title">标题部分</string>
    <string name="alert_dialog_three_buttons_msg">对于程序员或创业团队来说,还是有必要拥有一个属于自己的博客。
    Wordpress 曾经让个人或企业搭建博客变得非常容易。但是我们觉得 Wordpress
       还是有些重量级,所以选择了一个非常轻便的工具 toto,一段只有200多行代码的Ruby应用程序。</string>
       <string name="alert_dialog_something">进入详细</string>
       <string name="alert_diaog_text_entry">请输入</string>
</resources>
4、开发主逻辑代码:DialogTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
package com.dialogTest;
 
import com.listeview.R;
 
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.method.CharacterPickerDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
public class DialogTest extends Activity {
    private static final int dialog4 = 4;
    private static final int dialog3 = 3;
    private static final int dialog2 = 2;
    private static final int dialog1 = 1;
    /** Called when the activity is first created. */
    private Button button01;
    private Button button02;
    private Button button03;
    private Button button04;
     
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         
        button01=(Button)findViewById(R.id.button01);
        button02=(Button)findViewById(R.id.button02);
        button03=(Button)findViewById(R.id.button03);
        button04=(Button)findViewById(R.id.button04);
         
        button01.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                showDialog(dialog1);
            }
        });
         
        button02.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                showDialog(dialog2);
            }
        });
         
        button03.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                showDialog(dialog3);
            }
        });
         
        button04.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                showDialog(dialog4);
            }
        });
         
    }
    @Override
    protected Dialog onCreateDialog(int id) {
        // TODO Auto-generated method stub
        switch(id){
        case dialog1:
            return buildDialog1(DialogTest.this);
        case dialog2:
            return buildDialog2(DialogTest.this);
        case dialog3:
            return buildDialog3(DialogTest.this);
        case dialog4:
            return buildDialog4(DialogTest.this);
        }
        return null;
    }
    private Dialog buildDialog4(Context context) {
        ProgressDialog dialog=new ProgressDialog(context);
        dialog.setTitle("正在下载歌曲");
        dialog.setMessage("请稍候......");
         
        /*TimePickerDialog dialog=new TimePickerDialog(context, 0, null, 0, 0, false);
        dialog.setTitle("时钟");*/
         
        /*DatePickerDialog dialog=new DatePickerDialog(context, 0, null, 0, 0, 0);
        dialog.setTitle("日期");*/
         
        return dialog;
    }
    private Dialog buildDialog3(Context context) {
        LayoutInflater inflater=LayoutInflater.from(this);
        final View textEntryView=inflater.inflate(R.layout.alert_dialog_text_entry, null);
         
        AlertDialog.Builder builder=new AlertDialog.Builder(context);
        builder.setTitle(R.string.alert_diaog_text_entry);
         
        builder.setView(textEntryView); //关键
        builder.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
             
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                setTitle("单击对话框上的确定按钮");
            }
        });
        builder.setNegativeButton(R.string.alert_dialog_cancle,new DialogInterface.OnClickListener() {
             
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                setTitle("单击了对话框上的取消按钮");
            }
        });
        return builder.create();
    }
     
     
    private Dialog buildDialog2(Context context) {
        AlertDialog.Builder builder=new AlertDialog.Builder(context);
        builder.setTitle(R.string.alert_dialog_three_buttons_title);
        builder.setMessage(R.string.alert_dialog_three_buttons_msg);
        builder.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                setTitle("单击对话框上的确定按钮");
            }
        });
        builder.setNeutralButton(R.string.alert_dialog_something, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                setTitle("点击了对话框上的进入详细按钮");
            }
        });
        builder.setNegativeButton(R.string.alert_dialog_cancle, new DialogInterface.OnClickListener() {
             
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                setTitle("单击了对话框上的取消按钮");
            }
        });
        return builder.create();
    }
     
    private Dialog buildDialog1(Context context) {
        // TODO Auto-generated method stub
        AlertDialog.Builder builder=new AlertDialog.Builder(context);
        //builder.setIcon(R.drawable.icon);
        builder.setTitle(R.string.alert_dialog_two_buttons_title);
        builder.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                setTitle("单击对话框上的确定按钮");
            }
        });
        builder.setNegativeButton(R.string.alert_dialog_cancle, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                setTitle("单击了对话框上的取消按钮");
            }
        });
        return builder.create();
    }
}
5、运行效果显示:

 

主程序:

Dialog1:

Dialog2:

Dialog3:

Dialog4:


<!--EndFragment-->
分享到:
评论

相关推荐

    Android-dialog库可以在任意类内调用子线程或ui线程内均可显示

    标题提到的“Android-dialog库”是Android开发中的一个第三方库,它提供了一种灵活的方式,使得开发者能够在任意类中方便地调用Dialog,并且支持在子线程或UI线程内显示,这极大地提高了代码的可复用性和执行效率。...

    很好android自定义dialog加载转圈等待,适合初学,透明+正常两种主题

    在这个例子中,可能包含一个旋转动画来表示加载等待状态。 接着,我们需要创建一个DialogFragment类,它是Fragment的子类,可以承载Dialog。在DialogFragment中,重写`onCreateDialog()`方法,使用LayoutInflater...

    Android自定义Dialog多选对话框(Dialog+Listview+CheckBox)

    总结起来,这个示例展示了如何在Android应用中创建一个具有多选功能的自定义Dialog,通过Dialog、ListView和CheckBox的组合实现用户交互。这种功能在很多场景下都很实用,比如选择联系人、文件或者其他任何需要用户...

    Android Dialog使用详解

    在Android开发中,Dialog是一种非常重要的用户界面组件,它用于在主应用程序界面之上显示一个临时窗口,用于向用户展示信息、询问确认或者提供选项。在本文中,我们将深入探讨如何在Android应用中有效地使用Dialog。...

    Android 底部弹出dialog+动画

    以下是一个示例: ```java public class BottomDialogFragment extends AppCompatDialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { View view = LayoutInflater.from...

    android自定义dialog下载

    Dialog是Android UI系统中的一个组件,用于在主界面之上显示一个小型窗口,通常用于向用户显示警告、确认信息或者进行简单的操作。Android提供了多种预定义的Dialog样式,如AlertDialog、ProgressDialog等,但这些...

    android 全局dialog 兼容android 8.0

    综上所述,要在Android 8.0中实现全局Dialog,需要考虑后台服务的兼容性、消息推送的接收和处理,以及DialogFragment的正确使用。通过合理地应用上述策略和技术,可以构建一个既稳定又兼容多版本的全局Dialog系统。...

    Android 单图片选择,一个dialog全搞定

    本教程将深入探讨如何在Android 7.0系统上实现一个简单的单图片选择功能,通过一个对话框(Dialog)轻松完成。我们将讨论如何创建这个功能,包括必要的API调用、权限管理以及图片显示和获取。 首先,我们需要了解...

    android dialog输入框获取数据

    1. **创建项目**:在Android Studio中创建一个新的Android项目。 2. **添加必要的资源文件**:根据需求准备相应的XML布局文件和Java类文件。 3. **理解基本概念**:熟悉Android中Dialog的基本用法,了解...

    Android中dialog常用样式

    总结来说,Android中的Dialog是一个强大的组件,能够帮助开发者构建丰富的用户交互体验。通过学习和实践Dialog的各种样式,可以提高应用的用户体验,使信息展示更加直观和友好。`DialogApplication`这个项目为开发者...

    Android Dialog更改样式及显示位置

    在压缩包文件`MyDialog`中,可能包含了一个示例项目,展示了如何实现上述自定义Dialog样式和位置的方法。通过查看和学习这个项目,你可以更深入地理解如何在实际应用中实现这些功能。 总之,Android Dialog的样式和...

    详解Android中Dialog的使用

    本文将详细解析如何在Android中使用Dialog,并提供一些实用的实践技巧。 首先,最基本的Dialog类型是AlertDialog,它通常用于显示简单的消息、警告或选择项。创建一个普通的AlertDialog可以通过以下步骤实现: 1. ...

    Android自定义显示内容的Dialog

    Dialog是Android系统提供的一个内置组件,用于展示与用户交互的重要信息。要自定义Dialog,我们需要创建一个新的类,继承自Dialog,并重写其onCreate()方法。在onCreate()中,我们可以使用LayoutInflater来加载...

    Android自定义Dialog 界面比较好看

    DialogFragment是Android支持库提供的一个类,它允许我们在Fragment中展示Dialog。在子类中,我们需要重写`onCreateDialog()`方法,这里我们将返回我们的自定义Dialog实例。 ```java public class ...

    android各种Dialog对话框示例

    本示例将详细探讨Android中的各种Dialog对话框及其使用方法。 1. **AlertDialog** AlertDialog是Android中最基础的对话框类型,通常包含一个标题、一个信息文本和一到三个按钮(例如:确定、取消)。创建...

    Android自定义Dialog弹窗提示

    以下是一个简单的示例: ```java // 加载自定义布局 LayoutInflater inflater = getLayoutInflater(); View dialogView = inflater.inflate(R.layout.dialog_custom, null); // 创建Builder AlertDialog.Builder ...

    Android+dialog+大合集

    - **AlertDialog**:最常见的Dialog形式,通常包含标题、消息、一个或多个按钮。可以通过`AlertDialog.Builder`来创建。 - **ProgressDialog**(已弃用):显示进度条,常用于表示后台任务的进度,但现在推荐使用`...

    Pro Android学习:Dialog小例子

    本示例“Pro Android学习:Dialog小例子”旨在深入解析如何在Android应用程序中创建和使用Dialogs,以及与Fragment结合使用的方法。源代码位于名为"ProDialogDemo"的压缩包中。 首先,我们需要理解Dialog的基本概念...

    Android_Dialog测试代码

    DialogFragment是Android支持库中的一个类,它将Dialog和Fragment的功能结合在一起,使得Dialog可以拥有自己的生命周期并与其他Fragment协同工作。下面是一个基本的DialogFragment的创建示例: ```java public ...

    Android Dialog各种实现

    - AlertDialog:这是最常见的Dialog类型,它可以包含一个标题、一个消息、一个或多个按钮。通过AlertDialog.Builder类创建,可以设置图标、标题、消息和按钮。 - ProgressDialog:用于显示进度条,通常在执行耗时...

Global site tag (gtag.js) - Google Analytics