android中使用PopupWindow实现取消确定对话框

【无标题】Android studio中提示框“确定”和“取消”按钮的编写 Android studio中提示框“确定”和“取消”按钮的编写1、写在前面的话2、目标任务3、实现过程3.1布局文件的编写3.1编写对话框4、总结 1、写在前面的话 本人40岁纯小白一枚,最近对Android APP有了兴趣,目前的任务:通过Android Studio 利用Apche poi 、EasyExcel等第三方库,编写APP,实现移动端APP 与后台Excel的数据交互。 这次利用优快云平台记录下自己的成长。 纯属小白,有概念或者描述错误,希望大佬们不吝赐教,再此谢过。 2、目标任务 在学 阅读详情

需求背景:app退出登录时,弹出取消确定对话框。

个人感觉使用AlertDialog,需要修改系统自带的样式,比较麻烦,所以这里就用PopupWindow来实现这一需求。

这里先展示一下最终界面:

实现代码如下:

一、对话框xml代码(dialog_login_out.xml):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rl_dialog_login_out"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#66000000">

    <LinearLayout
        android:id="@+id/ll_popup_box"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/rounded_white1"
        android:orientation="vertical"
        android:layout_centerInParent="true">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="10dp"
            android:paddingBottom="10dp"
            android:orientation="vertical"
            android:background="@drawable/border_bottom_gray">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="提示"
                android:layout_gravity="center_horizontal"
                android:padding="2dp"
                android:textColor="#000000"
                android:textSize="12sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="是否确定退出登录"
                android:textColor="#000000"
                android:layout_gravity="center_horizontal"
                android:textSize="10sp"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <Button
                android:id="@+id/bt_cancel"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:paddingTop="8dp"
                android:paddingBottom="8dp"
                android:text="取消"
                android:textSize="13sp"
                android:textColor="#027bff"
                android:layout_gravity="center_horizontal"
                android:gravity="center_horizontal"
                android:background="@drawable/border_right"/>
            <Button
                android:id="@+id/bt_ok"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:paddingTop="8dp"
                android:paddingBottom="8dp"
                android:text="确定"
                android:textSize="13sp"
                android:layout_gravity="center_horizontal"
                android:gravity="center_horizontal"
                android:textColor="#027bff"
                android:background="@null"/>
        </LinearLayout>
    </LinearLayout>
</RelativeLayout>

二、java代码(UserCenterActivity.java):

   ....
   private PopupWindow mPopWindow;
   ....     
    //退出
    private void loginOut(){
        //获取自定义view
        View mDialogView = LayoutInflater.from(this).inflate(R.layout.dialog_login_out, null);
        mPopWindow = new PopupWindow(mDialogView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT, true);
        mPopWindow.setOutsideTouchable(false);
        //显示PopupWindow
        View rootview = LayoutInflater.from(this).inflate(R.layout.activity_usercenter, null);
        mPopWindow.showAtLocation(rootview, Gravity.CENTER, 0, 0);

        //拦截点击事件,防止传到下一层
        RelativeLayout rl_dialog_login_out=(RelativeLayout)mDialogView.findViewById(R.id.rl_dialog_login_out);
        rl_dialog_login_out.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return true;
            }
        });

        //取消按钮
        Button bt_cancel=(Button)mDialogView.findViewById(R.id.bt_cancel);
        bt_cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mPopWindow.dismiss();
            }
        });

        //确定退出
        Button bt_ok=(Button)mDialogView.findViewById(R.id.bt_ok);
        bt_ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //.....do something
            }
        });
    }

ok,结束。

Android-实现底部弹出PopupWindow并让背景逐渐变暗 Android-实现底部弹出PopupWindow并让背景逐渐变暗在android开发中,经常需要通过点击某个按钮弹出对话框或者选择框,通过Dialog或者PopupMenu、PopupWindow都能实现。 这里主要介绍后两者:PopupMenu、PopupWindow的实现。 先看两个效果图左边PopupMenu,右边PopupWindow: Android-实现底部弹出PopupWind 阅读详情

相关推荐

对话框之AlertDialog、DatePickerDialog(日期选择对话框)、TimePickerDialog(时间选择)、ProgressDialog(进度)、PopupWindow

AlertDialog及子类的继承关系: AlertDialog:(对话框是基于Activity的)1.概述:1)对话框分为两种,一种是简单的对话框,一种悬浮窗。 4.0之后,确定按钮在右边,而在2.3之前,是在左边,要注意。 2)AlertDialog生成的对话框可分为4个区域: 图标区 标题区 内容区 按钮区2.使用方法: 步骤: 1)建立builder,并set其图片、标题、内

womengmengyan的博客 2999

非常好用Android自定义Dialog(确认/取消),自定义标题,背景模糊,点击边框外取消等

学习目标: 今天看了谋篇文章的自定义Dialog并且学习了一下,复刻的非常完美,这个Dialog我用于系统提示,包括提示用户登录,提示网络请求等等。文章也是照搬过来的无其他的修改 原文链接在这里 自定义Dialog的详细步骤(实现自定义样式一般原理) 学习内容: 提示:这里可以添加要学的内容 例如: 第一步: 给Dialog设置一个风格主题(基本都是用这个主题)无边框全透明背景: <!--自定义dialog背景全透明无边框theme --> <style name="My

gsrkuang的博客 4861

Android学习历程17-popupWindow从下往上弹出效果的实现

popupWindow

anye_anye的博客 3436

Android开发之弹出popwindow

Android开发 popwindow结合sharedpreference

m0_56366502的博客 2249

Android的PopupWindow(详细版)

在学习PopupWindow之前,我们先了解一下PopupWindow的继承关系。↳是一个可以在Activity之上显示任意View的控件。在Android经常使用,效果跟Dialog效果类似,不同点在于可以控制显示的位置,比如底部显示等。

轻描时光 2412

Android进阶之路 - popupWindow使用详解

popupWindow还是比较好用的一款控件,他不会像Dialog一样让内容与样式死板,他的优势就在于我们可以填充自己喜欢的样式;在使用中遮盖层是个不大不小的问题,本文已经解决,同时还有一些其他问题的解决方式,也都在代码中进行了注释,大家请直接往下看吧(PS:最后又惊喜,或许你想要的答案就在最后哦)

Android、前端、小程序、后端 1万+

android 原生阻塞的对话框,Android阻塞对话框PopupWindow

介绍过AlertDialog之后,接下来就介绍一下PopupWindow这种对话框。PopupWindow是阻塞对话框,只有在外部线程或者 PopupWindow本身做退出操作才行。PopupWindow完全依赖Layout做外观,在常见的开发中,PopupWindow应该会与AlertDialog常混用。贴出本例中运行的结果图: main.xml的源码如下:android:orientation...

weixin_32827773的博客 501

Android对话框的详细介绍(提示对话框,自定义对话框)

我们都知道在Android开发中,当我们的程序在与用户交互时,用户会得到一定的反馈,其中以对话框的形式的反馈还是比较常见的,接下来我们来介绍几种常见的对话框的基本使用。

m0_58941767的博客 8936

Android入门第十篇之PopupWindow

  http://blog.youkuaiyun.com/hellogv/archive/2010/10/21/5956358.aspx 本文来自http://blog.youkuaiyun.com/hellogv/ ,引用必须注明出处!            介绍过AlertDialog之后,接下来就介绍一下PopupWindow这种对话框。PopupWindow是阻塞对话框,只有在外部线程 或...

java-admin 106

opencode完整使用指南:从安装配置到Agent式编程实战

AI编程工具正从辅助补全向智能体协作演进。编程智能体不仅理解项目全局,还能自主执行原子级重构、测试验证等工程任务,显著提升研发效能。以opencode为代表的开源终端AI编程工具,凭本地优先和灵活模型接入成为技术团队新宠。本文围绕opencode的完整使用链路展开,从Node.js环境准备、npm全局安装,到解决Windows环境变量配置问题,再到接入OpenAI、Anthropic或多模型管理平台,梳理一套标准化接入方案。同时演示VSCode插件调用、LSP语义分析及Playwright驱动的浏览器自动化

weixin_28837817的博客 319

WPS接入DeepSeek,实现AI辅助功能

总的来说,借助 WPS 中宏功能与 DeepSeek 大模型的结合,文档处理、内容创作和数据分析等任务都能更加智能化、自动化。这不仅大幅提升了工作效率,也为办公场景带来了全新的智能化办公体验。

运维老生常谈 3806

[android] 练习PopupWindow实现对话框

练习使用Dialog实习对话框 package com.example.tsh; import android.app.Activity; import android.app.Dialog; import android.os.Bundle; import android.os.Handler; import android.view.MotionEvent; import...

weixin_34124651的博客 143

[技术解析]4DGS:突破实时动态渲染的4D高斯溅射技术

本文深入解析了4DGS(4D Gaussian Splatting)技术,它通过引入时间维度,将静态的3D高斯溅射升级为动态的4D表示,实现了对复杂动态场景的高质量实时渲染。该技术利用时空联合编码器与高斯形变场网络,结合多分辨率编码与差分溅射渲染,在VR/AR、高帧率游戏等领域展现出突破性的应用潜力,兼顾了渲染速度与画面稳定性。

weixin_29218509的博客 417

android之PopUpWindow使用实例

最终效果图:main.xml布局文件

梦中一夜下江南 3万+

单细胞双胞过滤-scrublet安装

pip install scrublet ----use-pep517有如下报错,分析可知安装annoy时不会自动更新gcc的版本,centos默认是4.8.5。pip install scrublet ----use-pep517 仍然报错,但似乎不影响使用,提示Successfully installed。打开终端,进入Python环境,输入以下代码,查看Python安装位置。暂时还没尝试是否存在问题,如果存在问题,降级scrublet版本。包的开发依赖的是比较低版本的numpy,会用到。

hzau_t的博客 794

Deep Reinforcement Learning - 1. DDPG原理和算法

Deep Reinforcement Learning - 1. DDPG原理和算法 背景描述 DDPG的定义和应用场景 DDPG算法相关基本概念定义 DDPG实现框架和算法 DDPG对于DPG的关键改进 下一篇 以下用RL作为Reinforcement Learning 的简称。背景描述概括来说,RL要解决的问

kenneth_yu的博客 14万+

【Android】AlertDialog PopupWindow对话框

Android最常见的对话框是AlertDialog弹窗以及PopupWindow浮动对话框。 -> 带消息、带按钮的提示对话框; -> 带列表、带按钮的列表对话框; -> 带多个单选列表项、N个按钮的对话框; -> 带多个多选列表项、N个按钮的对话框; 另外AlertDialog还可以创建自定义对话框

Haunt_的专栏 1242

安全虚拟化SEV简单介绍

安全虚拟化SEV简单介绍什么是SEV什么是SVMSME介绍SEV介绍总结 什么是SEV SEV是由AMD提出的安全虚拟化Secure Encrypted Virtualization技术的英文首字母的缩写。简单来说就是主内存控制器具备了加密功能可以对虚拟机内存数据进行保护。在真正介绍SEV之前,我们首先要弄清楚两个关键的基本概念:SVM、SME。下面先简单了解一下SVM和SME。 什么是SVM S...

artine的专栏 6394

Android阻塞对话框PopupWindow

本文来自http://blog.youkuaiyun.com/hellogv/ ,引用必须注明出处!            介绍过AlertDialog之后,接下来就介绍一下PopupWindow这种对话框。PopupWindow是阻塞对话框,只有在外部线程或者 PopupWindow本身做退出操作才行。PopupWindow完全依赖Layout做外观,在常见的开发中,PopupWindow应该会与Aler

788

告别迷茫!手把手教你用ArcGIS+GTB搞定生态源地MSPA分析(附避坑指南)

本文详细介绍了如何使用ArcGIS和GTB进行生态源地MSPA分析的全流程,包括软件安装、数据预处理、参数设置、结果可视化和常见问题排查。特别针对ArcGIS和GTB组合使用时的常见问题提供了避坑指南,帮助研究者高效完成生态规划任务。

weixin_30756499的博客 436

【实战教程】OpenClaw接入MySQL数据库实战指南

本文介绍了在虚拟机Ubuntu中访问宿主机Win11中MySQL数据库的配置方法,重点包括创建远程用户、权限配置和安全设置。首先在MySQL中创建具有只读权限的用户并刷新权限,然后调整服务器设置允许远程连接。文章还提供了某金融机构财富管理系统的数据库设计方案,包含理财产品表、客户表和份额表的核心结构,其中金额字段使用DECIMAL类型确保精度,并设置唯一键约束。文末强调测试环境配置完成后应恢复安全更新模式以保障生产环境安全。

海兰 8700

模式对话框PopupWindow实现Dialog的功能

Popupwindow作为与Dialog有同等功能的对话框,Popupwindow现在完全实现Dialog的功能,背景变灰

Ataraxia的专栏 3393

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

android 对话框大全,Android 对话框AlertDialog,PopupWindow使用大全

对话框种类1.AlertDialog(Dialog)系统对话框。 2.Popupwindow弹出式对话框。对话框区别1.AlertDialog非阻塞式对话框:对话框的显示不影响后台任务的执行。 2.Pop对话框种类1.AlertDialog(Dialog)系统对话框。2.Popupwindow弹出式对话框。对话框区别1.AlertDialog非阻塞式对话框:对话框的显示不影响后台任务的执行。2.P...

weixin_28931449的博客 408

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Android新手入门2016(13)--阻塞对话框PopupWindow

上两章都说了非阻塞的对话框,今天说一下阻塞的对话框--PopupWindow 那么什么是阻塞什么是非阻塞呢?PopupWindow和AlertDialog有什么不同呢? 先说AlertDialog,弹出来之后,背面会变灰,并没有阻塞后台的进程,如果没特殊控制,点击后面灰暗处,弹框会消失掉的。 至于PopupWindow,则是弹出来,后面没有任何变化,并且阻塞该应用的进程,如果一直没退出,应用

肥宝的实验室 4351

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android AlertDialog和PopupWindow使用和区别

在实际的开发中,我们经常会用到弹框,以此来显示一个警告或提醒或者提供一系列选项让用户选择。前段时间在开发时,要用到弹框,突然意识到好像两个都可以完成需求,当时我在想,那它们到底有什么区别呢?于是查了相关资料后,整理如下: 先看下它们2个的用法吧 1.AlertDialog的基本属性和用法 AlertDialog是Dialog的子类,所以它包含了Dialog类的很多属性和方法,由于AlertD

gongwq的博客 1万+
上一篇: android中fragment之间传值
下一篇: android中textview设置为多行文本时,如何让文字从最顶开始显示
coderk2014
博客等级 码龄12年 42粉丝 35原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值