【android学习】Dialog对话框
来源:互联网 发布:u站淘宝 编辑:程序博客网 时间:2024/05/24 04:54
1,Dialog
1)onCreateDialog(int)
2)showDialog(int)
第一次请求时,会从Activity中调用onCreateDialog。
3)onPrepareDialog(int,Dialog)
在每次打开对话框时被调用。
4)dismissDialog(int)
关闭对话框时,可以调用dismiss()。
在Activity中调用dismissDialog,会为这个对话框调用dismiss方法。
如果想使用onCreateDialog方法来管理对话框的状态,然后还在每次对话框消除的时候,这个对话框对象的状态将由该Activity保留。
5)removeDialog(intid)
调用该方法,将删除任何内部对象引用。如果这个对话框正在显示,也会删除。
6)常见对话框
private Dialog dialog;public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); //创建一个默认对话框 dialog = new Dialog(this); //添加xml对象到Dialog对象中 dialog.setContentView(R.layout.dialog1); //设置标题 dialog.setTitle("Dialog"); //显示对话框 dialog.show();}
2,AlterDialog
1)Builder
AlterDialog通过AlterDialog的Builder进行创建,不能直接用new关键字构建对象。
因为其构造器都是保护的,所以不允许非子类调用。
AlertDialog.Builder builder = new AlertDialog.Builder(this);
2)setPositiveButton
setPositiveButton方法用来加确定按钮。
builder.setPositiveButton("确定",new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which){ }});
3)setNegativeButton
setNegativeButton方法用来加取消按钮。
4)show
用于创建并显示对话框。builder.show();
show()源码:
public AlertDialog show() { AlertDialog dialog = create(); dialog.show(); return dialog; }
create()方法可以创建对话框,但不显示。
5)setTitle
给AlterDialog设置标题。
builder.setTitle("标题");
6)setMessage
给AlterDialog设置内容。
builder.setMessage("内容");
7)setCancelable()
在这儿设置的时false,表示弹出的AlterDialog在用户点击返回键时不消失,该值默认是true。
8)setIcon
预设图片。
builder.setIcon(android.R.drawable.ic);
9)setView
添加自定义控件
LayoutInflater lif = LayoutInflater.from(this);View editView = lif.inflate(R.layout.dialog3, null);builder.setView(editView);
10)setSingleChoiceItems
单选对话框。
builder.setSingleChoiceItems(new String[]{"Item1","Item2","Item3"},0,new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog, int which){ dialog.dismiss(); }});
11)setMultiChoiceItems
多选对话框。
builder.setMultiChoiceItems(new String[] {"Item1","Item2"},null,null);
12)setItems
列表对话框。
builder.setItems(new String[] {"Item1","Item2"},null);
3,ProgressDialog
1)概念
进度对话框,会有一个循环的进度条显示在对话框上。
2)demo
ProgressDialog dialog = new ProgressDialog(this);dialog.setTitle("标题");dialog.setMessage("请稍后");dialog.show();
4,自定义Builder弹出对话框
1)含有标题、一个View、一个按钮的对话框
/** * 含有标题、一个View、一个按钮的对话框 * @param title * @param view * @param positiveText * @param onPositiveClickListener * @param cancelable * @return */ public AlertDialog showET_Dialog(String title, View view, String positiveText, DialogInterface.OnClickListener onPositiveClickListener,Boolean cancelable) { AlertDialog alertDialog = new AlertDialog.Builder(this).setTitle(title) .setView(view) .setPositiveButton(positiveText, onPositiveClickListener) .setCancelable(cancelable)//设置为false,按返回键不能退出。默认为true .show(); return alertDialog; }
调用的时候这样用:
LayoutInflater inflater = LayoutInflater.from(mContext); View view = inflater.inflate(R.layout.fragment_task_builder_et, null); final ClearEditText et = (ClearEditText)view.findViewById(R.id.fra_task_builder_et_NumLoad); ((MainActivity) getActivity()).showET_Dialog("提示", view, "完成", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }, true);
.xml是这样的:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical" android:padding="10dip" > <TextView style="@style/tv_standard" android:textColor="@color/white" android:gravity="left" android:text="@string/fra_task_tv_NumLoad" android:layout_marginBottom="10dip" /> <com.xaut.wx.view.ClearEditText android:id="@+id/fra_task_builder_et_NumLoad" style="@style/et_standard" android:hint="@string/fra_task_et_NumLoad" android:inputType="number" /> </LinearLayout>
运行图:
2)其它
/** 含有标题和内容的对话框 **/ protected AlertDialog showAlertDialog(String title, String message) { AlertDialog alertDialog = new AlertDialog.Builder(this) .setTitle(title) .setMessage(message) .setPositiveButton("确认", new OnClickListener() {//显示确定按钮 @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .show(); return alertDialog; } /** 含有标题、内容、一个按钮的对话框 **/ public AlertDialog showAlertDialog(String title, String message, String positiveText, DialogInterface.OnClickListener onPositiveClickListener,Boolean cancelable) { AlertDialog alertDialog = new AlertDialog.Builder(this).setTitle(title) .setMessage(message) .setPositiveButton(positiveText, onPositiveClickListener) .setCancelable(cancelable) .show(); return alertDialog; } /** 含有标题、内容、两个按钮的对话框 **/ public AlertDialog showAlertDialog(String title, String message, String positiveText, DialogInterface.OnClickListener onPositiveClickListener, String negativeText, DialogInterface.OnClickListener onNegativeClickListener) { AlertDialog alertDialog = new AlertDialog.Builder(this).setTitle(title) .setMessage(message) .setPositiveButton(positiveText, onPositiveClickListener) .setNegativeButton(negativeText, onNegativeClickListener) .show(); return alertDialog; } /** 含有标题、内容、图标、两个按钮的对话框 **/ protected AlertDialog showAlertDialog(String title, String message, int icon, String positiveText, DialogInterface.OnClickListener onPositiveClickListener, String negativeText, DialogInterface.OnClickListener onNegativeClickListener) { AlertDialog alertDialog = new AlertDialog.Builder(this).setTitle(title) .setMessage(message).setIcon(icon) .setPositiveButton(positiveText, onPositiveClickListener) .setNegativeButton(negativeText, onNegativeClickListener) .show(); return alertDialog; }
阅读全文
0 0
- android学习:对话框(Dialog)
- 【android学习】Dialog对话框
- Android学习——Dialog对话框
- Android学习——对话框Dialog
- Android Dialog 对话框例子
- Android 对话框(Dialog)
- Android Dialog( 自定义对话框)
- Android 对话框(Dialog)大全
- Android 对话框(Dialog)大全
- Android 对话框(Dialog)大全
- Android 对话框(Dialog)
- Android 弹出对话框Dialog
- Android 对话框(Dialog)大全
- Android自定义Dialog对话框
- Android 对话框(Dialog)
- Android 对话框(Dialog)大全
- 【Android】之【对话框 Dialog】
- Android对话框dialog
- LeakCanary 中的 IdleHandler简介
- 玩转svn命令行
- Android权限管理之Permission权限机制及使用
- 构造函数/原型/作用域链
- ButterKnife+ButterKnife Zelezny 控件空指针问题
- 【android学习】Dialog对话框
- 邮箱服务器(二) javamail
- Java多线程--四种线程池
- Dubbo框架
- python中threading模块详解及常用方法
- android NotificationListenerService监听通知栏(qq 微信 短信)
- js中===和==的区别
- 写给需要面试经验的交互设计师(上)
- 如何利用百度ocr实现验证码自动识别