freedom_wings4
freedom_wings4
采纳率19.8%
2017-03-15 10:20 阅读 2.3k

安卓,fragment中启动了另一个activity,怎样得到这个activity的回传值

就是有个fragment,是显示帖子列表的,然后还有一个按钮,按了这个按钮就会启动发帖的activity,当按了发帖按钮之后并成功收到网络传回的发帖成功的消息之后,就会销毁自身,并且传值给fragment,让其刷新帖子列表,但现在问题就在怎样通知fragment刷新帖子列表。

    考虑过回调接口,但是这样首先要调用seton...listener方法,这样要求首先发帖activity要持有fragment的实例,这又带出了新问题......这样要在startactivity的bundle中,fragment把自身传过去,这又要求fragment要序列化,麻烦,我这fragment的逻辑有一定的复杂,未试过是否能够序列化.........因为学习序列化对着示例来做那些待序列化的类都比较简单.....

    也考虑过handler,但是这样也要求在bundle中把handler实例传过去,不知道handler是否实现了parcelable接口或者serialize接口
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    freedom_wings4 freedom_wings4 2017-03-16 03:17

    想到怎么做了,我目前用的是LocalBroadcastManager,另外按楼上所说,在fragment里启动了activity,在该fragment依附的activity中覆写onActivityResult方法,里面调用fragment暴露出来的方法就可以,不过个人感觉这是fragment里面干的事,还要牵涉到这个它依附的activity了,感觉封装性是不是不太好?反正我还是用LocalBroadcastManager了

    点赞 评论 复制链接分享
  • fanst_ fanst_ 2017-03-15 14:41

    通过startActivityForResult启动新的activity,新的activity关闭前setResult,在原有的activity中重写onActivityResult用来收取关闭时传来的信息
    并做相应的逻辑。

    点赞 评论 复制链接分享
  • sxchen_csdn 凌岩歌-贰拾肆 2017-03-15 15:28

    通过startActivityForResult启动新的activity,新的activity关闭前setResult,在原有的activity中重写onActivityResult方法,来接收传回来的信息

    点赞 评论 复制链接分享

相关推荐