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

按钮中的StartActivityForResult内部适配器不触发OnActivityResult

是因为在调用StartActivityForResult方法时,传入的requestCode参数可能不正确或者不匹配。

StartActivityForResult方法用于启动一个新的Activity,并且期望在新的Activity结束后返回结果。在调用StartActivityForResult方法时,需要传入一个requestCode参数,用于标识这个请求。当新的Activity结束后,会回调当前Activity的OnActivityResult方法,并且传入requestCode参数和resultCode参数,以及包含返回数据的Intent对象。

如果内部适配器不触发OnActivityResult,可能是因为requestCode参数不正确或者不匹配。在调用StartActivityForResult方法时,requestCode参数应该是一个唯一的标识符,用于区分不同的请求。如果requestCode参数不正确或者不匹配,那么新的Activity结束后就无法触发OnActivityResult方法。

解决这个问题的方法是确保在调用StartActivityForResult方法时,传入的requestCode参数是正确的,并且在当前Activity的OnActivityResult方法中正确处理对应的requestCode参数。可以通过打印日志或者调试来确认requestCode参数的值是否正确。

另外,还需要确保在新的Activity中正确设置返回结果。在新的Activity结束时,可以通过调用SetResult方法设置返回结果,并且将包含返回数据的Intent对象作为参数传入。这样,在当前Activity的OnActivityResult方法中就可以通过data参数获取返回的数据。

总结起来,解决按钮中的StartActivityForResult内部适配器不触发OnActivityResult的问题,需要注意以下几点:

  1. 确保在调用StartActivityForResult方法时,传入的requestCode参数是正确的,并且在当前Activity的OnActivityResult方法中正确处理对应的requestCode参数。
  2. 在新的Activity结束时,通过调用SetResult方法设置返回结果,并且将包含返回数据的Intent对象作为参数传入。
  3. 在当前Activity的OnActivityResult方法中,通过data参数获取返回的数据。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动开发平台:https://cloud.tencent.com/product/mmp
  • 腾讯云云原生应用引擎:https://cloud.tencent.com/product/tke
  • 腾讯云数据库服务:https://cloud.tencent.com/product/cdb
  • 腾讯云服务器运维服务:https://cloud.tencent.com/product/cvm
  • 腾讯云音视频处理服务:https://cloud.tencent.com/product/mps
  • 腾讯云人工智能服务:https://cloud.tencent.com/product/ai
  • 腾讯云物联网平台:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云存储服务:https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务:https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙服务:https://cloud.tencent.com/product/vr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android调用另一个Activity并返回结果(选择头像功能为例)

下面示例实现点击选择头像按钮,跳转到头像显示Activity,并将选择图片索引返回,在MainActivity获取后设置头像。 效果 ?...注: 实现 首先是主页面MainActivity布局,添加一个选择头像按钮和一个ImageView用来显示头像。 <?xml version="1.0" encoding="utf-8"?...:layout_width="wrap_content" android:layout_height="wrap_content"/ </LinearLayout 然后在MainActivity...OnCreate方法,使用startActivityForResult能启动另一个Activity并能获得返回结果。...(intent,200); } }); } } 总结 以上所述是小编给大家介绍Android调用另一个Activity并返回结果(选择头像功能为例),希望对大家有所帮助,如果大家有任何疑问请给我留言

88631
  • startActivityForResult解析

    startActivity用于页面间正常跳转。 startActivityForResult用于页面间跳转并回传数据,比如商城类App下单时会有选择地址,选择之后地址更新。...(intent,1); } }); requestCode 是自定义请求码,必须大于等于0才行,这点源码有声明 2.第二个页面,只放了一个按钮,主要是事件 findViewById...resultCode一般是正常或者取消,正常就是选择地址并返回,取消情况比如,用户选择地址时候突然又不想选了或者点错了,然后直接返回,这种情况可以默认处理,处理的话就在这个页面监听一下返回键..., data); if (resultCode == 2) {//setResult标识码 if (requestCode == 1) {//startActivityForResult..., data); if (resultCode == 2) {//setResult标识码 if (requestCode == 1) {//startActivityForResult

    28320

    Android蓝牙详析 | 蓝牙适配、权限、开启、搜索发现等处理

    本系列笔记概述 蓝牙传输优势:功耗低,传输距离还可以; 蓝牙聊天室案例 Android蓝牙设备使用 蓝牙权限(本文讲解内容之一) 蓝牙功能开启(本文讲解内容之一) 搜索蓝牙设备(本文讲解内容之一...表示设备自身蓝牙适配器; 通过静态方法BlueAdapter.getDefaultAdapter()获得BlueAdapter; 整个系统只有一个蓝牙适配器,application可使用此BlueAdapter...Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult...mBluetoothAdapter.startDiscovery();//异步函数 } }); 运行之后点击“已配对设备”按钮...@Nullable Intent data) { ... } } } ---- demo(续上,监测扫描发现设备时、扫描完毕时两个状态,做对应处理): 点击“扫描附近蓝牙设备”按钮

    6.3K30

    Activity之间通信

    假设我们有这样一个常用场景: 有两个Activity,第一个Activity展示一段文本 点击“编辑”按钮启动第二个Activity,并把这段文本当做参数传递到第二个Activity 在第二个Activity...代码分散,可读性差 封装彻底,调用方需要到EditActivity才能知道需要传递什么参数,类型是什么,key是什么 调用方需要知道EditActivity是如何返回参数类型和key是什么才能正确解析...那 editContent 方法内部是如何实现呢?...,依然需要通过 startActivityForResultonActivityResult 来实现,所以我们这里通过一个不可见(没有界面) Fragment ,将这个过程封装起来,代码如下:...,在resumeWith方法来接受结果,但也是比 startActivityForResult 方式要好的多。

    1.1K10

    Fragment调用startActivityForResult那些坑

    调用几种方式 用getActivity方法发起调用,只有父ActivityonActivityResult会调用,FragmentonActivityResult不会被调用 直接发起startActivityForResult...这里2和3前提是如果父activity重写了onActivityResult,父ActivityonActivityResult必须添加super.onActivityResult() 总结起来就是...方法对于FragmentstartActivityForResult调用已经做了处理。...返回结果 这种情况和上面的是一样,从上面的源码我们可以看到,在哪个Fragment发起startActivityForResult调用,只要父ActivityonActivityResult方法调用了...super.onActivityResult()方法,FragmentonActivityResult方法就会回调 其实,说白了就是在Fragment中直接调用startActivityForResult

    2K10

    Android-使用Intent传递数据

    StartActivityForResult()接收两个参数, 第一个参数还是Intent, 第二个参数是请求码,用于在回调判断数据来源。...然后在SecondActivity按钮注册点击事件,并在点击事件添加返回数据逻辑 Intent intent = new Intent(); intent.putExtra...由于使用startActivityForResult()方法启动SecondActivity, 在被销毁之后会回调上一个活动onActivityResult()方法,因此需要重写这个方法:...由于在一个活动中有可能调用startActivityForResult()方法启动很多不同活动, 每一个活动返回数据都会回调onActivityResult()方法,因此需要先判断requestCode...如果在SecondActivity不是通过按钮点击返回,而是按下Back键, 可以在SecondActivity重写onBackPressed()方法解决问题: @Override public

    1.2K30

    安卓开发_startActivityForResult详细用法

    正文: startActivityForResult主要作用就是它可以回传数据,假设我们有两个页面,首先进入第一个页面,里面有一个按钮,用于进入下一个页面,当进入下一个页面时,进行设置操作,并在其finish...例如:一个Activity有两个按钮,点击这两个按钮都会打开同一个Activity,不管是那个按钮打开新Activity,当这个新Activity关闭后,系统都会调用前面ActivityonActivityResult...结果码作用 在一个Activity,可能会使用startActivityForResult()方法打开多个不同Activity处理不同业务,当这些新Activity关闭后,系统都会调用前面Activity...onActivityResult(int requestCode, int resultCode, Intent data)方法。...为了知道返回数据来自于哪个新Activity,在onActivityResult()方法可以这样做(ResultActivity和NewActivity为要打开新Activity):

    88660

    关于从activity跳转到fragment里面的问题

    输入一个字时候,下面的东西能够动态变化,然后你就可以点击listView显示某行值 然后界面再次回到 fragment里面,或者是跳转到其他fragment里面, 当时出了一个错误,就是我直接在searchActivity...里面执行了fragment跳转,发现这种是错误,根本无法跳转, 必须先把结果返回到StartActivity里面,由它分发事务才可以 所以这里就用了startActivityForResult();...来做, 在StartActivity里面,先跳转到其他界面: case R.id.publish_request: // 标题栏 发布 按钮事件触发 startActivityForResult...(new Intent(this, SearchActivity.class),SEARCHREQUST); break; 在onclick里面有这样事件 然后重载onActivityResult...,而值可以从 searchActivity里面返回,只不过我这里没有返回,因为我只需要知道一个值,而那个值我是放在Constants里面的,用时候从缓存里面取 所以这里面涉及到从activity

    1.9K20

    Android常见问题及开发经验总结(一)

    只需要检查程序变量或者 view 类型就可以  5.java.lang.IndexOutOfBoundsException用非法索引访问数组时抛出异常 这个在Android中一般在    适配器...6.有点击效果button 设置样式方法。 首先是准备好按钮不同状态图片 然后 在res/drawable定义selectorBtn.xmlxml文件 <?...在使用startActivityForResult()和onActivityResult()时,会分别用到requestCode和resultCode,有时候极容易将2个参数混淆起来。...startActivityForResult(Intent intent, Int requestCode) intent 传给B,requestCode >=0就好,随便用于在onActivityResult...intent 继续不解释,传回给AonActivityResult() onActivityResult(int requestCode, int resultCode, Intent intent

    40740

    Android 蓝牙4.0代码解析

    0,通俗易懂  粗暴解释Android与蓝牙Ble之间通信 - android小草 - 博客园 1,Activiy生命周期 Activity生命周期 2,AndroidonActivityResult...这个requestCode和startActivityForResultrequestCode相对应。...总结:旧窗体通过startActivityForResult(intent, requestCode)方法requestCode来标识信息(intent)传给2个不同新窗体,信息在新窗体显示;新窗体在自己窗体类中用...Android进阶2之Activity之间数据交流(onActivityResult用法) - 落日小屋 - 博客频道 - CSDN.NET  例子更形象、清晰 总结:调用startActivityForResult...在Service需要创建一个实现IBinder内部类(这个内部类不一定在Service实现,但必须在Service创建它)。

    1.1K50

    学问Chat UI(3)

    前言 上文学问Chat UI(2)分析了消息适配器实现; 本文主要学习下插件功能如何实现.并以图片插件功能作为例子详细说明,分析从具体代码入手; 概要 分析策略说明 “+”功能UI布局如何实现?...分析策略 1.从融云提供完整demo,操作“+”按钮,选择图片发送图片消息; 2.根据1操作,寻找对应控件与事件,理清逻辑; 3.从整体把握,看如何实现插件功能; “+”功能UI布局如何实现 从UI...看是两个部分:“+”按钮与扩展面板,点击会触发事件,判断扩展面板状态,未显示则显示扩展面板,显示状态则隐藏扩展面板; 代码上mPluginToggle对象就是那个"+"按钮,它是ImageView实例...插件如何与PluginAdapter关联起来?...接口对应方法; public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult

    1K60
    领券