Android系统对话框——自定义关闭
来源:互联网 发布:双四选一数据选择器 编辑:程序博客网 时间:2024/05/17 01:53
Android系统对话框——自定义关闭
Dialog是我们在项目中经常用到的,5.x以后的Dialog也很好看,很安卓风,Android也给我们提供了新的包,低版本可以显示一样的效果。我们在使用的导入v7包下的Dialog即可。
样式不是重点,我们点击Button以后,Dialog就会自动关闭,像这样:
但是有的情况,我们是想要点击完Button以后和我们一些交互的,不要立即关闭,我们想要自定义关闭,像这样:
下面进入正题了
自定义关闭
原生的使用方法,就不再介绍了,可以参照以前的文章:Android系统对话框
思路:原理很简单,我们创建Dialog的时候,可以给Dialog设置标题,内容,以及按钮,像 PositiveButton 等等。
我们以 PositiveButton 举例,我们想要点击 PositiveButton 以后不自动关闭,那我们自定义它的点击事件就好了。
在自定义之前,要首先保证我们添加了 PositiveButton,不然我们在获取 PositiveButton 的时候会报空指针,下面直接上代码
自定义Dialog
package com.kongqw.myapplication;import android.content.Context;import android.support.v7.app.AlertDialog;import android.text.TextUtils;import android.view.View;import android.widget.AutoCompleteTextView;import android.widget.Button;import android.widget.Toast;/** * Created by kqw on 2016/4/14. * 自定义Dialog */public class MyDialog extends AlertDialog.Builder { private AlertDialog mDialog; private AutoCompleteTextView mAutoCompleteTextView; // private DialogOnClickListener mDialogOnClickListener; public MyDialog(Context context) { super(context); // changeUserNameTool = new ChangeUserNameTool(context); initDialog(context); } private void initDialog(Context context) { View viewChangeUser = View.inflate(context, R.layout.view_mydialog, null); mAutoCompleteTextView = (AutoCompleteTextView) viewChangeUser.findViewById(R.id.autoCompleteTextView); setTitle("自定义Dialog"); setView(viewChangeUser); setPositiveButton("确定", null); setNegativeButton("取消", null); mDialog = create(); mDialog.show(); // 自定义Positive按钮 实现点击以后不自定隐藏Dialog setPositiveButton(); } /** * 在我们重新自定义PositiveButton的点击事件的时候,一定要保证之前添加了 PositiveButton * 就是 setPositiveButton("确定", null); * 不然下面的 getButton(AlertDialog.BUTTON_POSITIVE); 会报空指针 */ public void setPositiveButton() { Button positiveButton = mDialog.getButton(AlertDialog.BUTTON_POSITIVE); positiveButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 测试 if (TextUtils.isEmpty(mAutoCompleteTextView.getText().toString())) { mAutoCompleteTextView.setError("密码不能为空"); } else { Toast.makeText(getContext().getApplicationContext(), "修改成功", Toast.LENGTH_SHORT).show(); mDialog.dismiss(); } } }); }// public void setDialogOnClickListener(DialogOnClickListener listener) {// mDialogOnClickListener = listener;// }}
View(参考)
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <AutoCompleteTextView android:id="@+id/autoCompleteTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/x45" android:hint="修改密码" /> </android.support.design.widget.TextInputLayout></RelativeLayout>
使用(参考)
public void myDialog(View view) { new MyDialog(this);}
接口回调(参考)
如果点击按钮以后,有一些操想要在主类操作,可以添加一个接口回调
package ……;/** * Created by kqw on 2016/4/14. * Dialog回调接口 */public interface DialogOnClickListener { public void onPositiveButton(); public void onNegativeButton();}
3 2
- Android系统对话框——自定义关闭
- Android 自定义系统对话框
- Android系统对话框和自定义对话框实现
- Android——点击对话框上按钮不关闭对话框
- Android——点击对话框上按钮不关闭对话框
- Android——点击对话框上按钮不关闭对话框
- Android——点击对话框上按钮不关闭对话框
- android dialog——自定义对话框之一
- Android开发——AlertDialog自定义对话框
- Android 延迟关闭对话框
- android中的对话框:自定义对话框
- 20. android dialog——自定义对话框之一
- 21. android dialog——自定义对话框之二
- Android自定义控件系列(五)—万能的对话框
- Android开发之自定义对话框(2)—加入EditText
- Android—关于自定义对话框的工具类
- 完全自定义Android对话框AlertDialog的实现(系统源码)
- Android自定义弹窗——右上角悬浮关闭
- 蓝桥杯~凑算式
- C#如何在Form启动时控制焦点落在某一个控件上?
- Quartz Quick Start Guide
- iOS开发------程序实现国际化Localizable
- SGU 127 Telephone directory(水~)
- Android系统对话框——自定义关闭
- SSH简介与Hadoop集群环境搭建之 SSH免密钥登录
- 一些提高用户体验的前端技术
- html 文本提示值
- 选择排序
- sbt 区分多个环境
- iOS应用内付费(IAP)开发步骤列表
- 图片压缩处理
- Linux后台运行nohup,setsid