首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

旧版Android设备的setFinishOnTouchOutside的替代品?

旧版Android设备的setFinishOnTouchOutside的替代品是setOnCancelListener。setOnCancelListener是DialogFragment类中的一个方法,用于在用户点击对话框外部时执行特定操作。这个方法可以作为setFinishOnTouchOutside的替代品,用于处理旧版Android设备上的对话框取消操作。

以下是一个简单的示例代码:

代码语言:java
复制
public class MyDialogFragment extends DialogFragment {
    @Override
    public void onCancel(@NonNull DialogInterface dialog) {
        super.onCancel(dialog);
        // 在这里处理对话框取消操作
    }

    @Override
    public void onStart() {
        super.onStart();
        Dialog dialog = getDialog();
        if (dialog != null) {
            Window window = dialog.getWindow();
            if (window != null) {
                window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
                window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            }
        }
    }
}

在这个示例中,我们重写了onCancel方法来处理对话框取消操作。当用户点击对话框外部时,onCancel方法会被调用。在onStart方法中,我们设置了对话框的背景颜色为透明,并设置了对话框的大小。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

关于app提示专为旧版Android打造的有关测试

一般这种情况,要么是用了低版本安卓专用的参数,要么就是应用SDK版本配置过低,上网查了一下,原因大致是因为从Android9开始,操作系统对minSdk进行了限制。...也就是说: Android P机以上机型上,当应用的targetSdk版本低于17时,应用启动时会弹窗“此应用专为旧版Android打造,因此可能无法正常运行。请尝试检查更新或与开发者联系”。...综上所述,解决方法有二: 方法一:app修改 android:targetSdkVersion 值为合适值 方法二:降低ro.build.version.min_supported_target_sdk...设置值 这里我用的第一种方法,首先查看我自己手机的Android API 然后在手机上用MT管理器反编译,更改AndroidManifest.xml中的targetSdkVersion值为29...,你们的支持是我前进的动力!

4.5K20

Android设备屏幕方向的一二事

根据设备配置信息 Configuration cf= activity.getResources().getConfiguration(); // 获取设置的配置信息 int ori = cf.orientation...配置AndroidManifest.xml 在activity 中加入 android:screenOrientation="landscape" 属性。...处理Activity的配置变更 有些设备配置可能会在运行时发生变化(例如屏幕方向、键盘可用性及语言)。 发生这种变化时,Android 会重启正在运行的 Activity。...重启行为旨在通过利用与新设备配置匹配的备用资源自动重新加载Activity,来帮助它适应新配置。但重启Activity并恢复大量数据不仅成本高昂,且用户体验差。...(目标API>13时必需) 参考:https://developer.android.com/guide/topics/resources/runtime-changes.htmlAndroid设备屏幕方向的一二事

1.9K280
  • DTO 的替代品!!

    数据传输对象是在进程之间承载数据的对象。使用它的动机是进程之间的通信通常通过远程接口完成,其中每次调用都是昂贵的操作。...由于每次调用的大部分成本都与客户端和服务器之间的往返时间有关,因此减少调用次数的一种方法是使用一个对象(DTO)来聚合本应传输的数据由几个呼叫,但仅由一个呼叫提供服务。...在这种情况下,最好的方法是返回实体本身。 2 JPA 投影 我们在特定情况下请求特定数据。因此,当调用到达数据访问层时,所需数据的范围是完全已知的:执行适合此范围的 SQL 查询是有意义的。...本质上,查询中的投影允许精确地选择想要的数据。...GraphQL 为您的 API 中的数据提供了完整且易于理解的描述,使客户能够准确地询问他们需要什么,仅此而已,使 API 更容易随着时间的推移而发展,并支持强大的开发人员工具。

    1.1K30

    GitHub 的替代品

    ,但还是希望读者能意识到它本质还是家商业公司,在提供这么多好用、免费的功能同时,肯定会在其他方面找回来,比如前不久收费的副驾驶员 Copilot[9],毕竟天下没有免费的午餐。...,当时的 CEO 在 Twitter[12] 上是这么回应的: It is painful for me to hear how trade restrictions have hurt people....在俄罗斯攻打乌克兰时,也有群众呼吁禁用俄罗斯的用户访问,不过最后没有实施[13]。 当然,不仅仅是上述原因,重要文件多处备份永远都是非常必要的。...— Codeberg News[15] • Why I Use Sourcehut | parasrah[16] 个人觉得,追求纯 FOSS 有些属于软件开发领域的意识形态,属于吃饱没事干才会考虑的问题...,但人就是这样的物种,多多少少都有些自己的坚持。

    74810

    Kubectl 的替代品:kubeman

    周末闲逛 Twitter 时,发现一个很有意思的小工具叫 kubeman,野心倒是不小,励志成为 kubectl 的替代品,用于实时监控和管理 kubernetes 集群,还可以调试与 Istio...如果只使用 kubectl,当网格中的服务出现问题时,可能需要运行很多命令,而且要交叉引用来自多个命令的输出信息,这就会导致问题分析的过程很复杂。...还提供了一些额外的操作: 一旦操作项运行并输出了结果,你就可以在输出面板顶部的搜索框里通过关键词搜索相应的文本。如果想删除搜索的关键词,可以按下键盘上的 esc 键。 ?...每个操作项的输出会按层级进行分组。最顶部的输出行(深蓝色)显示的是输出结果的标题,单击这一行会将整个输出折迭起来,只显示组和子组,这样就可以看到整个输出的概要。再次单击这一行就会显示整个输出。 ?...同理,你可以单击某一个组来折迭这个组的输出,只显示子组。同理适用于子组。 不同的子组下的输出都可以展开和折迭,你可以上下滚动来选择感兴趣的子组,然后单击展开输出。 ?

    1K20

    Postman 的替代品来了

    Postwoman 一个开源、免费、快速、漂亮的 API 构建器,可以替代 Postman。 这个名字起得挺有意思,感觉像 Postman 的媳妇。...Postwoman 的诞生过程: 它的作者是一个全栈开发工程师,经常使用 Postman 做 API 测试,Postman 对不同操作系统都做了客户端,作者常在不同平台做测试,感觉这点非常麻烦,而且 Postman...还收费,也不支持 cURL,还有其他一些让他不爽的地方,这时作者就起了掐死 Postman 的念头,他心中想要一个这样的 API 测试工具: 开源 在线运行 多平台支持 多设备支持 可以在任何地方访问...POST 中添加原生域 支持集合,可以把请求放入集合 支持代理 支持Docker 功能真不少,我对她支持 cURL 和 GraphQL 比较感兴趣,试了一下导入cURL,输入curl命令后,她会自动转为普通的请求方式

    1.8K20

    GravityRAT针对Android设备的间谍行为分析

    之前GravityRAT比较注于计算机的恶意攻击,但是研究者发现该木马正增加针对macOS和Android平台的攻击。...近期,恒安嘉新暗影实验室App全景态势与情报溯源挖掘平台监测到一款名为爱欲故事(英文:Lust Stories)的恶意程序,研究人员分析发现该应用利用用户Android 设备的多个广播事件(开关飞行模,...2)设备关闭屏幕时,设备发送android.intent.action.SCREEN_OFF广播,启动恶意服务,获取用户通话记录、通讯录、短信等内容。...图4-8 屏幕关闭发送广播启动恶意服务 3)设备打开屏幕时,设备发送android.intent.action.SCREEN_ON广播,启动恶意服务,获取用户通话记录、通讯录、短信等内容。...图4-14 设备充电发送广播启动恶意服务 9)设备断开充电,设备发送android.intent.action.ACTION_POWER_DISCONNECTED广播,启动恶意服务,获取用户通话记录、通讯录

    42210

    iOS Android 移动设备中的 Touch Icons

    好了,结合Jeff 查阅的资料,下面来详细来说说iOS / Android 移动设备中的 touch icons。 关于 “Touch icons” favicons 知道是什么吧?...,Chrome v31+ for Android 以上的版本支持这个;但遗憾的是,苹果的设备不支持这个。...考虑到最大的兼容性,Chrome for Android 做了一定的牺牲,那就是,如果再你的网页上找不到上面的代码,就会向下兼容,跟随者苹果的设备支持的touch icons(类似一开头的代码)。...不同的Touch icons 尺寸 (接下来讲的基本上是apple 的设备)考虑到不同设备的分辨率以及屏幕材质的问题,为了最佳的显示体验,你可以用sizes标签定义下,如: 的,而且不是每个人都用apple 的设备的,确实是没有必要过于考虑完全——不然累的是自己。其实原文还有一些内容的,但这篇文章就这样结束了。

    2.2K60

    Dart语言的接口替代品

    在Dart语言中并没有接口的概念,但接口的功能需要其他功能来弥补,这就是抽象类。接口的作用是用于制定规范。也就是说,在接口中定义的方法,都必须在实现接口的类中实现。而且接口本身并不能实例化。...Dart中的抽象类与接口类似,但也有一定的差异。它们的区别、联系以及主要用途如下: • Dart抽象类允许定义没有方法体的方法,这一点与接口一样。不过也允许定义包含方法体的普通方法。...• 如果在Dart抽象类中定义没有方法体的方法,那么抽象类的子类必须实现这个方法,否则子类也出现编译错误,除法将子类声明为抽象类,否则代码无法编译通过。...• 抽象类中有方法体的方法就是普通方法,在抽象类的子类中并不要求覆盖这些普通方法,但要想使用普通方法,必须用普通类继承抽象类,才可以实例化,并调用这些普通方法。 • 通常可以用抽象类实现多态的效果。...尽管这两个变量中包含了同样的方法,但由于这两个类中实现方法的代码不同,所以通过这两个变量调用同名方法的效果也不同,这就叫多态。

    47330

    Android 上关于设备唯一标识的调研

    简而言之:IMEI / MEID 是和设备相关的,移动设备的唯一标志码;而IMSI 和 ICCID 是和手机卡相关的,信息存储到手机卡上,没有安装手机卡的手机,上面获取这两个值为null。...关于SIM卡相关的信息,一般来说没有办法标志设备,因为手机可以任意替换SIM卡,而且现在手机都是双卡双待的,关于双卡手机获取和手机卡相关的信息参考这篇文章 我们这里主要关心设备ID(IMEI或者MEID...),解释下这两个东西:IMEI是国际移动设备识别码的简称,而MEID是 动设备识别码的简称,一般IMEI是所有设备都有,而MEID一般只在只有支持CDMA制式的设备才有的。...IMEI或者MEID Android系统关于双卡的支持的知识需要知道一些,在Android4.x及其以下版本的时候,原生Android是不支持双卡的,在5.x左右开始支持,但是api是隐藏的,在Android...ANDROIDID 在设备首次启动时,系统会随机生成一个64位的数字,并把这个数字以16进制字符串的形式保存下来,这个16进制的字符串就是ANDROID_ID,当设备被wipe后该值会被重置。

    3.4K30

    利用旧版Android漏洞的E-Z-2-Use攻击代码已在Metasploit发布

    利用旧版Android漏洞的E-Z-2-Use攻击代码发布利用Android操作系统WebView编程接口漏洞的攻击代码已作为一个模块加入到开源漏洞利用框架Metasploit中。...漏洞影响Android 4.2之前的版本,Google在Android 4.2中修正了这个漏洞,但根据官方统计,超过五成用户仍然使用存在漏洞的旧版本。...WebView的漏洞允许攻击者在Android浏览器和其它应用中注入恶意 JavaScript代码,获得与目标程序相同的访问权限,攻击者可以开启一个shell窗口访问受害者的文件系统、照相机,地理位置数据...漏洞还可通过不安全网络的中间人攻击触发。漏洞存在于Android系统中,而不是私有的 GMS 应用平台,只有更新系统才能修正漏洞。...安全研究人员Tod Beardsley希望,攻击代码的披露能迫使供应商尽快升级系统。

    82260

    国际化之Android设备支持的语种

    昨天发了关于iOS支持的语种,文章最后也补了安卓支持语种列表。但最后发现安卓设备支持跟它列的有出入,我重新完全手工整理了一遍。...我将对应的语种在安卓的语言列表里的显示,也全部逐一列出来了,方便大家到时候对照图片切换相应的语言。 找到一个网站,可以根据语言的代码查询相关的信息。...我觉得这张表缺少几个东西,一个是 cs-CZ 对应的英文全文,二是相应语言的一个缩写,比如上面的韩语(한국어)。...中文(繁体) –> 中文(繁體) 再一个我发现安卓比 iOS 蛋疼,iOS 如果我选择中文后,其它语言会显示中文及对应语言的符号,虽然上面我不认识,中文我是认识的,切换起来无成本。...好像Android 高版本的系统已经支持了,刚刚确认了一下:) 搜索,最重要的是找到背后的规律(比如上面 URL 上的规则),不然就是蛮力在做事情效率低下。

    71620

    链表的替代品--Vector组件

    概述在之前的一篇文章中,作者写了一个事件组件-- 超精简的订阅发布事件组件--SPEvent,这个组件是采用链表建立所有事件节点的关系的。...链表的优缺点:优点:①链表上的元素在空间存储上内存地址不连续;②在插入和删除操作时,只需要修改被删节点上一节点的链接地址,不需要移动元素;缺点:①没有解决连续存储分配带来的表长难以确定的问题;②失去了顺序存储结构随机存取的特性...SPEvent实际不会存在删改的动作,显然链表的优点在这个组件中无法体现优势。而实际顺利存储更能满足SPEvent的业务及能力,那么有什么方式能做到这个操作了?...采用KEY-VALUE的特性开查找对象。...int16_t top; // vector当前已经存储的数据的峰值数目 int16_t free; // vector已经被释放的数据记录数目

    43620

    Android开发(19) 使用adb建立pc和android设备之间的连接

    图示如下: 情景 情景1: android设备     位于互联网的服务器 情景2: android设备    WIFI路由(可能是家用的小路由等)     ...android 设备毕竟没有pc上操作更方便 于是我们考虑到另外的情景 情景3: android设备    PC(个人电脑)     位于互联网的服务器 这个情景里,我们的android...adb是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机)....android设备 要使用adb,我们可以在我们的sdk目录下找到它。...如下: 1.列出当前所有连接到pc的android 设备。(以得到一个设备ID) 2.安装某个apk(android 应用程序包)到手机。 3.发送广播以启动手机内的某个服务。

    1.5K00

    Java 中的 pyftpdlib 替代品

    在 Java 中,有一些替代方案可以用来实现 FTP 服务器功能,类似于 Python 中的 pyftpdlib。目前我们常用的就是三种替换方案,这里需要根据自己的项目需求选择合适的方法。...2、解决方案Java 中有许多可替代 pyftpdlib 的 FTP 服务器库,其中包括:Apache FtpServer:Apache FtpServer 是 Apache Jakarta 项目的一部分...,是一个功能强大且可扩展的 FTP 服务器,支持多种协议和特性,包括 SSL/TLS、匿名登录、虚拟用户等。...SimpleFTP:SimpleFTP 是一个轻量级且易于使用的 FTP 服务器库,提供了基本的 FTP 功能,例如文件上传、下载、删除等,非常适合小型应用程序使用。...,要知道这些 Java FTP 服务器库都提供了丰富的功能和灵活的配置选项,可以根据我们的需求选择最适合的替代方案。

    13810

    AppFlowy-Notion的开源替代品?

    在之前我介绍过了notion,这款强大的制作笔记的应用,说是笔记,其实它可以记录的内容非常多。具体可以翻看之前的文章。当然了,里面有部分强大的内容不是免费试用的。...今天来介绍一个记笔记的应用 AppFlowy 。这个是一个完全开源的产品。...同样的,AppFlowy 也是支持Mac / Windows / Linux Packages 这3个端的。并且明确的说了,完全的,100%免费!...打开应用后,先进行数据保存地方的设置,设置完成之后,就可以看到它的展示页面,在这个页面会有小教学。 它是支持中文设置的,那么我们第一步,就先设置中文。...其他的比如主题,字体等设置,就可以自行去更改了。都在设置选项里 相比于memos的过于简单,notion的功能繁杂,或许这款100%开源的AppFlowy 也是一个不错的选择。

    2.8K30

    ActiveReports 6:如何升级旧版本的项目

    如果现有的项目基于ActiveReports的旧版本开发,但现在希望使用ActitveReports for .NET 6.0的新功能,就需要把现有的项目升级到6.0上。...附带的转换工具(参见下面“升级ActiveReports for .NET 1.0 或2.0项目”); 二是在Visual Studio中打开工程,用新版本的DLL替换掉旧版本的DLL引用,并且修改代码的编译错误...在弹出的添加引用对话框中,选择版本为6.x.xxx.x 的ActiveReports引用。...在1.0和2.0版本中,控件的名称可以用大小写区分,比如可以用”Test”和”test”表示两个不同的控件,但ActiveReports 6(和3)要求控件的名称必须是唯一的且不区分大小写。...如果装载的RPX文件中包含两个仅用大小写区分名字的控件,装载将会失败。为了避免此问题,需要给每个控件一个单独的名字,并且把代码做相应修改。

    1.7K60

    Rtips:如何安装旧版本的R包

    在R包版本依赖有误、新版R包存在bug或者新版R包函数重大更新导致自己代码报错等情况下,一个可选的解决方案是安装特定的旧版本的R包来解决。...R包的两大分发位置是CRAN和bioconductor,CRAN的R包是本文讨论的重点,bioconductor包的版本依赖比较严格,因此本文暂不分析bioconductor包的旧版本安装。...如何寻找旧版本的CRAN R包 CRAN是The Comprehensive R Archive Network,它是分发各版本R及R包的地方。...R包,也是最好安装的R包,不像R包的源码安装往往会出现编译错误; macOS binaries: 同上,mac平台的二进制R包; Old sources: 旧版本R包的源码。...如下图所示就是ROCR包的旧版本源码的位置。 便捷寻找CRAN R包 除了一步一步的按照上述步骤寻找R包主页,一个更方便的方式是: 方法1:搜索引擎直接搜索CRAN+包名即可,一般第一个就是。

    2K11
    领券