zoukankan      html  css  js  c++  java
  • 在普通class里使用onActivityResult获取从一个activity返回的数据 (待解)

    通常当我们需要从当前activity a启动一个activity b,并希望在b finish之前返回一些数据给a,就使用startActivityForResult,onActivityResult,setResult这些函数。但是这些函数是定义在Activity里面的,普通的class里面没有这些函数。

    当我希望在一个fragment里面startActivityOnResult另一个activity,并将返回的数据交给fragment所属的activity处理,我在fragment里面定义了一个回调接口,并在fragment的onActivityResult里面调用了这个回调接口以把从另一个activity获取的data作为接口参数传递给所属activity.(注:fragment类是有startActivityForResult相关函数的)。

    但是关于startActivityForResult这些的另一个问题来了:比如我有一个listfragment,那我也有一个myListAdapter,这个list item中有子view可以响应单击事件,单击后启动activity another ,然后接收another的数据后更新listFragment所属的activity的数据。。。。(是不是很绕。。)

    我的解决办法就是:(暂时还不知道为什么它就被解决了,先mark下先)

    在myListAdapter为子view注册监听,在单击事件监听中通过构造myListAdapter时传递进来的activity对象(这是listfragment所属activity传递给listfragment,由listfragment传递给myListAdapter的)去startActivityForResult,然后“重写”onActivityResult,在这个方法中将获取的data通过自定义的回调接口传递给需要处理这些数据的activty.(listFragment所属的activity了。。。。),而不明白的地方就在于这个myListAdapter是一个继承BaseAdapter的普通class,它没有startActivityForResult这些方法,当我“重写”onActivityResult的时候,它是如何接收到返回的data的??

    如何有明白的还望不吝赐教,有更好的处理这种数据传递需求的也望不吝赐教,以上有写错的也望指正~

  • 相关阅读:
    POJ 1182 食物链 并查集
    POJ 3666 Making the Grade DP
    POJ 1631 Bridging signals DP(最长上升子序列)
    POJ 1065 Wooden Sticks / hdu 1257 最少拦截系统 DP 贪心
    利用UUID 随机生成8位短号
    JS遍历子孙树
    前端中this的用法
    利用fetch进行POST传参
    SQL UNION 操作符
    Python 抖音机器人,论如何在抖音上找到漂亮小姐姐?
  • 原文地址:https://www.cnblogs.com/LNOMP/p/4291852.html
Copyright © 2011-2022 走看看