`
Sunny_Ya
  • 浏览: 14930 次
  • 性别: Icon_minigender_2
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Android中的Dialog用法大全

阅读更多

   在 Android 中个种对话框效果的应用。常用对话框的使用,弹出式对话框、日期选择对话框、时间选择对话框、进度条对话框。这篇资料会让我们更了解Dialog的用法,下面我们就来看看代码吧:
package eoe.android.dialog;

import java.util.Calendar;

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.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Button;

public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// 弹出式对话框的 Demo。先调用 Builder(),在 Create(), 需要显示对话框的是后再调用 show()
AlertDialog dialog = new AlertDialog.Builder(this).setTitle("弹出对话框").create();
dialog.show();

// 以下是各种对话框的 Demo
MyButtonClickListener listener = new MyButtonClickListener();
Button btn1 = (Button) this.findViewById(R.id.btn1);
btn1.setText("简单的对话框的 Demo");
btn1.setOnClickListener(listener);

Button btn2 = (Button) this.findViewById(R.id.btn2);
btn2.setText("包括常用设置的对话框(数据来自 xml)");
btn2.setOnClickListener(listener);

Button btn3 = (Button) this.findViewById(R.id.btn3);
btn3.setText("弹出的对话框的内容是一个 View");
btn3.setOnClickListener(listener);

Button btn4 = (Button) this.findViewById(R.id.btn4);
btn4.setText("日期选择对话框");
btn4.setOnClickListener(listener);

Button btn5 = (Button) this.findViewById(R.id.btn5);
btn5.setText("时间选择对话框");
btn5.setOnClickListener(listener);

Button btn6 = (Button) this.findViewById(R.id.btn6);
btn6.setText("进度条对话框");
btn6.setOnClickListener(listener);
}

class MyButtonClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {

// 具体的对话框的实现可以通过重写 onCreateDialog 完成

switch (v.getId()) {
case R.id.btn1:
Main.this.showDialog(0);
break;
case R.id.btn2:
Main.this.showDialog(1);
break;
case R.id.btn3:
Main.this.showDialog(2);
break;
case R.id.btn4:
Main.this.showDialog(3);
break;
case R.id.btn5:
Main.this.showDialog(4);
break;
case R.id.btn6:
Main.this.showDialog(5);
break;
}
}
}

@Override
public Dialog onCreateDialog(int id) {
switch (id) {

case 0:
// 一个简单的弹出对话框
return new AlertDialog.Builder(this).setTitle("这是一个简单的弹出对话框的 Demo")
.create();

case 1:
// 一个相对复杂的弹出对话框
return new AlertDialog.Builder(this)
.setTitle("标题") // 设置标题
// .setCustomTitle(View) // 以一个 View 作为标题
.setIcon(R.drawable.icon01) // 设置标题图片
// .setMessage("信息") // 需要显示的弹出内容
.setPositiveButton("确定", new OnClickListener() { // 设置弹框的确认按钮所显示的文本,以及单击按钮后的响应行为
@Override
public void onClick(DialogInterface a0, int a1) {
TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);
txtMsg.append("单击了对话框上的“确认”按钮\n");
}
})
.setItems(R.array.ary, new DialogInterface.OnClickListener() { // 弹框所显示的内容来自一个数组。数组中的数据会一行一行地依次排列
public void onClick(DialogInterface dialog, int which) {
}
})
// 其他常用方法如下
// .setMultiChoiceItems(arg0, arg1, arg2)
// .setSingleChoiceItems(arg0, arg1, arg2)
// .setNeutralButton(arg0, arg1)
// .setNegativeButton(arg0, arg1)
.create();

case 2:
// 弹出对话框为指定的 View 的 Demo
return new AlertDialog.Builder(this).setTitle("此对话框的内容是一个 View")
.setView(this.findViewById(R.layout.view)).create();

case 3:
// 弹出日期选择对话框
Calendar c = Calendar.getInstance();
return new DatePickerDialog(this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);
txtMsg.append("新设置的日期为:" + String.valueOf(year) + "-"
+ String.valueOf(monthOfYear) + "-"
+ String.valueOf(dayOfMonth) + "\n");
}
}, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DATE));

case 4:
// 弹出时间选择对话框
Calendar c2 = Calendar.getInstance();
return new TimePickerDialog(this, new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);
txtMsg.append("新设置的时间为:"
+ String.valueOf(hourOfDay) + ":"
+ String.valueOf(minute) + "\n");
}

}, c2.get(Calendar.HOUR), c2.get(Calendar.MINUTE), true);

case 5:
// 弹出进度条对话框
ProgressDialog progress = new ProgressDialog(this);
progress.setMessage("loading...");
return progress;

default:
return null;
}
}
}
分享到:
评论

相关推荐

    Android Dialog中加载GIF

    Glide的使用方法简单,性能优越,是Android开发者常用的选择。 要实现在Dialog中加载GIF,我们需要以下步骤: 1. **添加依赖**:在项目的build.gradle文件(app模块)中添加Glide的依赖。确保你的build.gradle文件...

    android dialog基本用法

    在`onCreateDialog()`方法中构建Dialog。 ```java public class CustomDialog extends DialogFragment { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { // 创建Dialog并返回 ...

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

    库的使用方法通常包括以下步骤: 1. 引入库:在项目的build.gradle文件中添加对应的依赖,比如对于Android-dialog库,可能是通过Maven或Gradle仓库获取。 2. 创建Dialog实例:使用库提供的类,如`CustomDialog`,...

    Android 控制关闭Dialog

    在Android开发中,Dialog是一种常见的用户交互元素,用于在用户界面中显示临时信息或进行简单的交互操作。通常,当我们使用AlertDialog构建一个对话框时,它的默认行为是在用户点击按钮(如"确定"或"取消")后自动...

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

    在DialogFragment中,重写`onCreateDialog()`方法,使用LayoutInflater加载之前创建的布局文件,并设置Dialog的属性,例如宽度、高度、背景颜色等。对于透明主题,可以设置Dialog的背景为透明,以达到与屏幕融合的...

    Android自定义dialogDemo

    在这些方法中,你可以处理Dialog的初始化、显示、暂停和关闭等操作。 6. **点击事件处理** 在自定义Dialog中,通常需要监听按钮或其他View的点击事件。可以通过`setOnClickListener()`方法为View设置监听器,实现...

    Android中用Dialog来做使用引导/新手引导页面

    在onCreate()方法中检查SharedPreferences,如果用户未看过引导,就显示引导Dialog。 总结,通过自定义Dialog实现Android应用的新手引导页面,不仅可以提高用户体验,还能让新功能的介绍更具针对性。关键步骤包括...

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

    在`selectAll()`和`deselectAll()`方法中,我们遍历数据源并改变每个条目的选中状态,然后调用`notifyDataSetChanged()`通知ListView数据已更新。同时,我们可以在CheckBox的点击事件中检查`isAllSelected`状态,...

    Android Dialog全屏显示、动画显示

    在`onActivityResult`方法中处理拍照结果: ```java @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CAMERA_REQUEST_CODE && resultCode == ...

    Android 对话框(Dialog)大全

    此外,该示例还展示了如何在Activity的`onKeyDown()`方法中调用上述`dialog()`方法,以便在用户按下返回键时显示“确认退出”对话框。 #### 五、总结 本文详细介绍了Android对话框的管理方法、关键API以及示例代码...

    Android中dialog常用样式

    在Android应用开发中,Dialog是一种重要的用户交互组件,它用于显示临时信息或向用户征求简短的确认或选择。在日常开发中,我们经常会遇到各种类型的对话框需求,如警告、确认、信息提示等。本资源集合了Android中...

    Android中Dialog使用详解

    最后,为了确保用户体验,记得在适当的时候关闭对话框,如Activity的onPause()或onDestroy()方法中,以防止对话框阻碍用户操作其他应用。 总之,Android中的AlertDialog是一个功能强大的组件,允许开发者创建各种...

    Android Dialog设置透明背景以及位置

    如果你想实现类似QQ悬浮窗的效果,即Dialog总是在最上层并且可以随屏幕滚动,你需要创建一个`Service`来显示Dialog,并在`onCreate()`方法中设置`WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY`类型。...

    android dialog输入框获取数据

    3. **理解基本概念**:熟悉Android中Dialog的基本用法,了解LayoutInflater的作用及如何使用findViewById方法获取控件引用。 #### 三、实现步骤 接下来,我们将按照以下步骤来实现带有输入框的Dialog,并从中获取...

    Android五种显示Dialog的方法实现

    以上五种方法涵盖了Android开发中Dialog的基本使用场景。在实际应用中,可以根据需求选择合适的方式,或者组合使用,以实现更丰富的对话框功能。同时,为了提供更好的用户体验,应考虑Dialog的样式、大小、位置以及...

    Android dialog单选、多选弹窗

    在Android开发中,Dialog是一种常见的用户交互界面,用于显示临时信息或者进行简单的用户操作选择。在标题"Android dialog单选、多选弹窗"中,我们主要关注的是两种类型的Dialog:单选对话框(Radio Button Dialog)...

    android 全局dialog 兼容android 8.0

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

    android在dialog中显示二维码

    要实现在Dialog外部点击时关闭Dialog,可以在Dialog的`onCreate()`方法中设置监听器: ```java @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStyle...

    Android中Dialog从底部划入

    在`onCreateDialog`方法中,使用`LayoutInflater`加载刚才创建的布局,并设置Dialog的样式为底部滑入动画。例如: ```java public class MyDialogFragment extends AppCompatDialogFragment { @NonNull @...

    Android Dialog与软键盘的正确打开方式

    首先,让我们了解Android Dialog的基本用法。Dialog是基于Activity的,通常用于显示一些额外信息或获取用户输入。创建一个自定义Dialog通常涉及以下步骤: 1. 创建一个继承自`AppCompatDialogFragment`的类,重写`...

Global site tag (gtag.js) - Google Analytics