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

finish()方法不适用于安卓中的OptionsItemSelected方法

finish()方法是Android中的一个方法,用于关闭当前Activity并返回到上一个Activity。它可以在Activity中的任何位置调用,以便在满足某些条件时结束当前Activity的生命周期。

然而,在Android中的OptionsItemSelected方法中,不适合直接使用finish()方法。这是因为OptionsItemSelected方法是用于处理菜单项的选择事件的,而不是用于结束Activity的。

在Android中,当用户点击菜单项时,系统会自动调用Activity的onOptionsItemSelected方法,并将被选中的菜单项作为参数传递给该方法。开发者可以根据菜单项的ID来执行相应的操作。

如果想要在菜单项被选中时结束当前Activity,可以使用以下方法:

  1. 在onOptionsItemSelected方法中,判断选中的菜单项的ID是否与预期的菜单项ID相匹配。
  2. 如果匹配,则调用Activity的finish()方法来结束当前Activity。

以下是一个示例代码:

代码语言:txt
复制
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    
    if (id == R.id.menu_item_finish) {
        finish();
        return true;
    }
    
    return super.onOptionsItemSelected(item);
}

在上述示例中,假设R.id.menu_item_finish是一个菜单项的ID,当用户选择该菜单项时,会调用finish()方法来结束当前Activity。

需要注意的是,为了使上述代码正常工作,需要在菜单项所在的布局文件中定义一个对应的菜单项,并为其设置一个唯一的ID。

总结起来,finish()方法适用于在Activity中的其他位置调用,用于结束当前Activity。而在安卓中的OptionsItemSelected方法中,应该根据菜单项的选择来执行相应的操作,而不是直接调用finish()方法。

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

相关·内容

Android 去除APP广告几种方法

目录 一、Android 去广告 四大金刚 1、hosts 法 去大部分广告 2、Lucky Patcher 去软件广告 3、去除Android 通知栏广告 4、Android 去广告终极大法...– 关闭数据 二、总结 一、Android 去广告 四大金刚 1、hosts 法 去大部分广告 这个方法放在第一位,是因为这个方法最有效,能够阻挡掉 90% 广告。...点击提示包含Google广告软件,进入上面的菜单,选择 “ 打开破解菜单 ”, 进入下图: 选择 “移除 Google 广告 !”,然后就等待一会,一般时间较短,会提示成功。...使用以上这两个方法之后,广告几乎看不到了,下面这两个方法,喜欢可以用,不喜欢忽略就行了。...二、总结 这次总共有四个方法,不过前三个方法都是需要root,什么魅族MX之类不能root就只能看着悲具发生了。 其实使用前两个方法便足以拦截掉所有广告,后面的方法,个人认为用不用都是可以

37.3K20

Android开发:获取App版本号方法步骤

前言 在Android开发过程,想要开发一个完整功能App,各个地方内容都要涉及到,比如获取App系统版本号就是必须要有的功能。...AndroidApp版本号相关内容比iOSApp版本号内容要多,而且iOS版App版本信息跟Android还不一样。...本篇文章就来介绍一下Android开发获取App版本号方法步骤,方便以后使用。获取App版本号常用有两个方法,这两种方式都能获取到系统版本号,请根据实际需求或者偏好来选择任何一种方法即可。...方法一: 1、打开项目工程,找到左侧项目目录里面的app目录下build.gradle文件,然后单击进入,然后找到defaultConfig文件里面的“versionName”选项,这个选项对应就是系统版本号信息...: 1、具体操作步骤同方法步骤1; 2、具体操作步骤同方法步骤2; 3、在java文件里面的具体操作代码如下所示: private TextView showVersion = null; showVersion

3.1K42
  • 模仿源码,手写过时方法兼容低版本

    经常写代码时候,会看到某个方法上面画一条横线,注释写是此方法已过时,推荐使用XXX某某方法替代。我觉得这个提示很有用。...在实际开发,有时候老项目版本迭代之后,用了最新API,为了兼容老版本,要把老方法保留,还要新增很多新方法,无疑增加了工作量。假如这时候引入源码这种设计思想,问题就会变得很简单了。...下面简单来讲一下: 我们经常会使用getColor(R.color.XXX)获取颜色资源文件,但是在6.0开始,这个方法被标注为过时,推荐使用两个参数方法替代,如下图所示: ?...过时方法 那么我怎么才能象系统源码那样去做呢?别着急,干货来了。。...调用方法 怎么样?是不是很装(6)逼?别人用这个方法时候,一看过时了,说明这个方法兼容版本比你编译版本要低,那么切换到新方法就没问题了。有着轻度强迫症我,是不会看到这种过时方法存在

    67620

    APP渗透 | 模拟器7.0以上抓包方法

    抓包前准备: 模拟器:雷电模拟器4.0 Android7.1内核版本 Proxifier、代理抓包工具(burpsuite、Fiddler)均可 通常情况下需要在模拟器修改wifi代理其实我觉得这种是比较麻烦...进行到这一步后我们在模拟器打开浏览器就可以从Proxifier中看到流量情况,但是目前我们只能抓取http包还不能抓https包。 ?...所以我们要来解决这个问题,经过查询资料了解到7.0以上后默认不在信任用户自行安装证书文件、如果需要抓包我们就要把自己证书放到系统目录下、或者对app进行修改从而进行抓包。...在这里我选择安装系统证书方式进行更加通用方式进行处理。 1:从浏览器中导出burpsuite证书 ? 在谷歌浏览器设置搜索管理证书-安全下找到管理证书。 ?...复制该.0文件(文件名可能是不一样) 复制到系统证书目录/etc/security/cacerts 下(re文件管理器需要挂载读写权限、模拟器自带root管理授权即可) ? ? ?

    12.2K20

    简单有效,新型对抗性攻击方法成功攻破热门APPDL模型

    本文研究者提出了一种简单却有效攻击 APP 深度学习模型方法,并在实验得到了验证。...在本文中,来自澳大利亚莫纳什大学研究者探究了当今主流移动 App DL 模型针对对抗性攻击鲁棒性,并对部署在移动 App DL 模型进行了深度分析,如模型特点、模型关系和训练方法等。...特别地,研究者提出通过识别 TensorFlow Hub 高度相似预训练模型,并利用对抗性攻击来破解深度学习模型。这种方法虽然简单却有效,在实验成功地攻击了 10 个真实 App。...模型 论文从 Google Play 上爬取了 62,822 个热门移动应用以研究其中 DL 模型使用情况。...这证明目前 DL 在移动 App 安全性还需要进一步提高,比如改进迁移学习方法、对模型加密防止被抽取和对模型进行对抗性训练等。

    51710

    手机NFC模拟门禁卡(设置UID)一种方法

    本文通过对Android源码NFC部分简单分析,实现了另外一种设置UID方式,可用于部分场景下门禁卡模拟。...现在很多手机都具有NFC芯片,系统也从Android 4.4开始原生提供了NFC卡片模拟实现,即HCE。...我们首先通过AN11690.pdf一幅图来整体认识一下NFC在Android平台实现。 ? 底层是基于Linux内核,因此驱动一个硬件设备Linux设备驱动必不可少。...sService是一个static INfcAdapter对象,INfcAdapter是AIDL定义接口,用于调用NfcService方法。可以看出它执行了Serviceenable()方法。...六、从NCI层入手 从上面NFC Service相关分析也可以看出,系统正是通过NCI层来与NFCC进行交互

    16.9K30

    用于SFM像素特征精细化方法(已开源)

    跟踪分离:匹配图中连接成分定义了临时轨迹–可能观察到相同3D点但其观察结果尚未经过几何验证关键点集,一个3D点在一个图像上只能有一个投影点,使用跟踪分离方法可以快速去除错误匹配点。...1,3D稀疏点三角化 2, 相机位姿估计 3,SFM 性能 下图是算法优化前后特征点位置分布,可以看到本文方法得到特征点位置(绿点)在不同视角间是保持一致,而原始特征点(蓝点)容易受到提取噪声干扰...4,耗时统计 总结 在本文中,从运动获得精确大尺度结构方法是使用稀疏局部特征进行初始粗略估计,然后使用局部精确密集特征进行精细化,由于密集特征只需要具有局部区分性,因此它们可以捕获更低级别的纹理...通过大量实验,我们表明,这将导致更精确相机姿态和结构;在具有挑战性条件下,针对不同地方特色,在针对稠密特征建图进行优化同时,我们保持了SfM稀疏场景表示,这不仅确保了该方法可扩展性,还确保生成...3D模型与下游应用程序兼容,例如用于视觉定位建图。

    85920

    android 图片识别文字,手机如何识别图片中文字?一个方法轻松解决难题…

    大家好,又见面了,我是你们朋友全栈君。 现在使用手机的人并不少,有时在工作生活,需要利用手机将图片中文字识别提取出来,这个时候你会吗?...相信很多人答案是否定,那么手机如何识别图片中文字呢?下面我们就一起来看看吧。...想要利用手机将图片中文字识别提取出来,你只需要这样做就行: 很简单,只要在手机上下载安装一个专门图片文字识别APP即可。 那这个图片文字识别APP是什么呢?...下面是迅捷文字识别提取图片中文字方法步骤: 1、先在手机上安装迅捷文字识别,安装后,便打开。...如果你想要将图片中文字翻译成其他语种的话,可以点击【翻译】,然后再选择对应语言即可。 以上就是手机识别图片中文字方法啦,有这方面困扰朋友,就快点去试试吧!

    9.7K41

    MoCo不适用于目标检测?MSRA提出对象级对比学习目标检测预训练方法SoCo!性能SOTA!(NeurIPS 2021)

    本文提出方法称为选择性对象对比学习 (Selective Object COntrastive learning,SoCo) ,它基于Mask R-CNN框架在COCO检测实现了SOTA迁移性能。...最近一些工作表明,图像级表示对于密集预测任务(如目标检测和语义分割)是次优。一个潜在原因是,图像级预训练可能过度适用于整体表示,无法了解图像分类之外重要属性 。...本文目标是开发与目标检测相一致自监督预训练。在目标检测,检测框用于对象表示。目标检测平移和尺度不变性由边界框位置和大小来反映。...不同于先前图像级对比学习方法,将整张图片作为作为一个实例,SoCo将图像每个对象proposal视为一个独立实例。 因此,作者设计了一个新预训练任务,用于学习与目标检测兼容对象级视觉表示。...具体来说,除了像现有的自监督对比学习方法那样预训练backbone之外,SoCo还预训练了目标检测器中使用所有网络模块,如FPN和Mask R-CNN框架head。

    1.5K40

    优化应用内存神秘方法以及背后原理,一般人我不告诉他

    应用一般都害怕自己被杀,内存占用高是被杀重要原因之一,所以大家都想尽各种招数应对,但效果都一般。...文章分三大部分,第一大部分用简单方式描述绘制系统框架,第二大部分说明绘制过程GPU产生缓存原因。第三大部分说明startTrimMemory能够清理GPU缓存以及一些误区。...(一)简介绘制系统框架 绘制系统比较复杂,网上很多文章讲得很细,但不容易抓住核心要点,其实我们只要抓到12个关键对应关系和概念,就可以掌握清晰基本框架,对debug和性能优化都有价值。...view做动画时候如果触发了子view重新绘制,绘制效率就会降低 12) 目前主流手机,GPU和CPU会共享内存,GPU占用内存多了,留给CPU就会相应减少,每个进程GPU占用内存,也会被统计到各个进程总内存当中...在操作系统,多媒体技术上有不错积累,开发公司级课件《深入省电十大困惑》。

    4.9K91

    EasyGBS在政府防业务弱命令及密码泄露问题解决方法

    EasyGBS有很多用户群体是针对政府业务,政府业务往往会因为漏洞扫描出现一些问题,所以有的时候客户那边服务器进行安全漏洞扫描,又有漏洞报错,下面来介绍一下政府项目中几个漏洞解决。...1.弱命令:安全扫描出EasyGBS弱命令问题 这个是由于EasyGBS设定密码过于简单,客户可以通过页面去修改密码,或者通过接口一起去修改密码 2.密码泄露漏洞 这个问题是由于EasyGBS...js文件导致,因为我们除了EasyGBS用户还有个用户是匿名用户,账号密码为guest2020/guest2014&2020,要解决这个漏洞方式有以下两种: 第一种是关闭匿名用户功能,需要把在easygbs.ini

    55320

    AndroidAndroidStudio&Kotlin安装到运行过程及常见问题汇总

    勾选Android Virtual Devide(AVD)虚拟设备,这样之后可以在电脑上生成一个虚拟机以方便我们运行编写好程序。如果准备用真机进行测试,可以取消勾选该选项。...选择Brower去选择AS安装路径,需要至少500MB硬盘空间选择完毕后点击Next ? 该界面用于生成一个Menu文件夹,位于开始菜单位置。...当中选择,用于创建一个适配手机或桌面的应用程序,后面的几个分别为适用于可穿戴设备系统,电视系统,车载系统和其他关于工程。选择该选项你将会创建一个空项目,该项目不包含Activity ?...系统运行,最低兼容版本意味着在比他低版本下无法运行该程序。...然后点击Apply点击OK关闭 安装AVD与配置AVD AVD:Android Virtual Devices 虚拟机 用来在电脑上运行一个虚拟系统,可以将程序安装到该系统运行。

    1.4K10

    android studio安装教程(包安装成功,不成功你找我)

    百度搜索Android studio,或者直接输入Android Studio 中文社区-开发者工具集:Android SDK/JDK/ADT/Gradle/App-3.0正式版下载/安装/教程/外包.../招聘/游戏下载/软件下载进入这个页面 根据这个下载相应安装包或者压缩包。...点击finish 选择第二个,点击ok 两个都可以,我点击Don’t send 点击Cancel 点击Next 选择第一个,点击Next 选择你想要主题颜色,点击Next 点击Finish...,项目构建失败,请看教程最下面的解决方法 这个变成绿色就说明项目创建成功,可以运行了 点击这个新建模拟器 选择完之后点击Next 点击Download下载你想要系统,下载完之后选中,点击Next...解决办法:在build.gradle里面把原来google()和jcenter()方法注释掉添加镜像 maven { url ‘https://maven.aliyun.com/nexus/content

    1.1K20

    进阶:知识遗忘真的是程序员通病吗?其实是这些新知识学习方法你还没学会!

    那这样方法有人告诉你吗?不管有没有,反正我今天要和你分享一下,所以等下看完记得点赞哦! 你觉得最好学习新知识方法是什么?...那学习新知识方法是什么呢?...因为我们一般死记硬背知识都是最原始一些知识,但是对于一个知识,你如果能复述出来,则说明,你在复述过程中和学习这个知识过程是有自己理解,这点非常重要。...3、关于程序员系统学习 我们都很渺小,在宇宙甚至比不上一颗尘埃,可是人为何称之为人,就是因为人懂得思考,知道学习重要性。并且随时愿意改变自己,重新出发。...《486页超全面Android开发相关源码精编解析》 刷大厂面试题备战,增加大厂通过率 历时半年,整理了这份市面上最全面的面试题解析大全。 1.可以通过目录索引直接翻看需要知识点,查漏补缺。

    62900
    领券