博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android系统对话框——自己定义关闭
阅读量:4592 次
发布时间:2019-06-09

本文共 3022 字,大约阅读时间需要 10 分钟。

Android系统对话框——自己定义关闭

Dialog是我们在项目中经经常使用到的,5.x以后的Dialog也非常好看,非常安卓风。Android也给我们提供了新的包,低版本号能够显示一样的效果。我们在使用的导入v7包下的Dialog就可以。

P1

样式不是重点,我们点击Button以后。Dialog就会自己主动关闭。像这样:

GIF1

可是有的情况,我们是想要点击完Button以后和我们一些交互的,不要马上关闭,我们想要自己定义关闭,像这样:

GIF2

以下进入正题了

自己定义关闭

原生的用法,就不再介绍了,能够參照曾经的文章:

思路:原理非常easy。我们创建Dialog的时候,能够给Dialog设置标题,内容。以及button,像 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(); // 自己定义Positivebutton 实现点击以后不自定隐藏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("password不能为空"); } else { Toast.makeText(getContext().getApplicationContext(), "改动成功", Toast.LENGTH_SHORT).show(); mDialog.dismiss(); } } }); }// public void setDialogOnClickListener(DialogOnClickListener listener) {
// mDialogOnClickListener = listener;// }}

View(參考)

使用(參考)

public void myDialog(View view) {    new MyDialog(this);}

接口回调(參考)

假设点击button以后,有一些操想要在主类操作,能够加入一个接口回调

package ……;/** * Created by kqw on 2016/4/14. * Dialog回调接口 */public interface DialogOnClickListener {
public void onPositiveButton(); public void onNegativeButton();}

转载于:https://www.cnblogs.com/jzdwajue/p/7225983.html

你可能感兴趣的文章
LOJ #2145. 「SHOI2017」分手是祝愿
查看>>
二分查找
查看>>
[导入]子网掩码和ip地址的关系
查看>>
Rehashing
查看>>
单点登录SSO:概述与示例
查看>>
暑假集训(3)第三弹 -----Til the Cows Come Home(Poj2387)
查看>>
SpringMVC工作原理及流程
查看>>
工具类封装
查看>>
从数据库的表导出到Excel表格中【让客户端下载的Excel】
查看>>
js5:框架的使用,使框架之间无痕连接
查看>>
第六次随笔
查看>>
jquery快速入门三
查看>>
分布式锁 原理及实现方式
查看>>
四则运算三完整版
查看>>
18.3 线程的声明周期
查看>>
fomo6d游戏系统开发 fomo6d游戏
查看>>
div简单布局理解
查看>>
EasyUI Tree判断节点是否是叶
查看>>
Java基础加强总结(一)——注解(Annotation)
查看>>
Windows 2008R2关闭网络发现
查看>>