作业,关于activity多次向fragment传值的问题

作业,关于activity多次向fragment传值的问题

由于我的搜索区域是放在activity上的,而结果是在fragment上,所以每次搜索都要把电影名和电影类型通过bundle传给fragment,但是测试后发现如果fragment调用的是hide()和show()方法来显示,那么搜索只能搜索一次,后面再次输入电影名或者电影类型,搜索结果的fragment都无法接收到activity通过bundle发送过来的参数,除了使用handler,replace()复用,广播,以及第三方框架,有没有比较取巧或者比较原始的方式能够实现每点击一次搜索按钮,activity都能成功把参数传递给fragment?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

init的时候可以通过类似如下方法初始化两个Loader

getSupportLoaderManager().initLoader(LOADER_HOT_MOVIES_ID, null, this);//LOADER_HOT_MOVIES_ID为常量
getSupportLoaderManager().initLoader(LOADER_SEARCH_MOVIES_ID, null, this);

在onCreateLoader(int id, Bundle args)回调中根据id判断new不同的loader对象。在onLoadFinished()回调方法中,根据第一个参数loader的getId()判断是哪一个loader对象从而设置处理相应逻辑


  • eclo 提问者 #1
    好的,学到了,谢谢
    2018-12-23 11:49:30
irista23 2018-12-23 11:22:46

最简单处理是不使用fragment,只用actvity,对于重用的布局部分可以使用include。不是所有场景都适合使用fragment代替activity,要看是否需要将布局与代码逻辑一起封装被反复复用。

  • 提问者 eclo #1
    之前的想法是打算用一个activity来做的,但是好像一个activity只能有一个loader吧,一个是一开始加载所有电影的loader,一个是加载搜索结果的loader,两个loader不知道怎么在一个activity中使用就打算用fragment了可以隔离开loader
    2018-12-23 11:36:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android数据通信开发与应用2018版
  • 参与学习           人
  • 提交作业       147    份
  • 解答问题       687    个

本专题介绍了Android开发核心组件:广播、服务及全局应用。教会你如何使用AIDL、Thread、Socket、蓝牙解决进程线程间通信问题。利用Glide等实现异步加载及NDK原生代码开发。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师