logger作业问题。。。

logger作业问题。。。

现在情况是在一个actvity里面根据获取的数据来更换recycleview的布局,但是在使用loader时发现,我搜索电影是需要传入参数的,可是如果直接使用getSupportLoaderManager().initLoader(LOADER_HOT_MOVIES_ID, null, this);//LOADER_HOT_MOVIES_ID为常量来初始化两个loader的话,那么在点击搜索图标那里不就没法把参数传进去了么,流程应该是进入APP第一个loader加载所有电影数据,recycleview显示,然后输入电影名,类型,点击搜索图标,第二个loader开始加载数据,然后recycleview更换布局显示搜索结果,可以如果在一个activity中使用两个loader的话第二个loader的参数不知道怎么才能传进去了,并且recycleview必须是响应点击事件后才能更换布局的,那么点击事件应该放在哪里,放在onLoadFinished是不行的,因为点击的时候是把参数发送给loader并且改变recycleview布局,想问一下实现思路是怎么样的,感觉要兼顾点击之后参数传给loader,然后recyclerview更换布局这里的逻辑顺序并不能按顺序执行,怎么解决?

http://img1.sycdn.imooc.com//climg/5c20c6630001548309950498.jpg

http://img1.sycdn.imooc.com//climg/5c20c6e00001237010290546.jpg


正在回答 回答被采纳积分+1

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

4回答
提问者 eclo 2018-12-25 11:22:48
提问者 eclo 2018-12-25 10:59:13
  • 你onCreate()中两次 .initLoader(把这两个id都加上, null, this);
    2018-12-25 11:57:25
  • 提问者 eclo 回复 好帮手慕雪 #2
    我一开始就是这样写的啊 loaderManager.initLoader(SHOW_MOVIEW_LOADER_ID, null, this); loaderManager.initLoader(SEARCH_MOVIEW_LOADER_ID, null, this); 但是这样点击事件就没反应了
    2018-12-25 12:03:10
  • 提问者 eclo 回复 好帮手慕雪 #3
    试了一下,而且这样好像没办法把点击事件和loader联系起来,更不用说通过点击传参了吧?并且这样还是只执行第一个loader,第二个loader没办法执行
    2018-12-25 12:10:33
好帮手慕雪 2018-12-25 10:12:33

你要把它们定义成两个RecyclerView,用各自不同的LayoutManager,各自不同的Adapter ,不要让它们相互影响。否则耦合度太高,这就像是整个APP只有一个xml文件一个Activity一样,所有的视图,不同的布局,不同的管理全放进了一个容器里,耦合度太高了。你要把它们分离出来。要用不同的RecyclerView,来完成。

  • 提问者 eclo #1
    老师没看我下面另外一个回答的图片么,现在的主要问题是在点击搜索图片按钮的时候,通过Logger打印我的参数已经传递过去了,但是在onCreateLoader()return new一个加载搜索的loader好像没有成功,因为在onLoaderFinished里面拿不到搜索结果的数据,而且按照逻辑应该是打开app加载所有数据的loader先启动,recyclerview显示,然后输入电影名选择类型,点击按钮之后传递参数,启动搜索loader,recyclerview显示。那么在点击事件里怎么写才能够达到点击按钮后loader启动呢,最后使用两个recyclerview的问题,在同一个位置使用两个recyclerview不会出现问题么,难道直接调用控件的setVisibility方法解决么
    2018-12-25 10:37:15
  • 好帮手慕雪 回复 提问者 eclo #2
    对,用setVisibility来解决。另onCreateLoader没成功,无数据,你看一下SearchMovieLoader是不是没有正确的获得数据呢。你得去源头查询
    2018-12-25 11:04:45
  • 提问者 eclo 回复 好帮手慕雪 #3
    我查不出头绪,因为这个搜索loader是应该在点击搜索之后启动的,所以我一开始初始化放在activity的onCreat()里,后来觉得这样这个loader应该接收不到参数,然后再按钮的点击事件里面去初始化还是拿不到,所有感觉上是启动loader出问题了,另外这个SearchMovieLoader的代码是没问题的,我直接固定参数值使用SearchMovieLoader就可以得到搜索结果,就是在一个activity里面用两个loader通过ID判断选择哪个loader就出问题了
    2018-12-25 11:18:36
提问者 eclo 2018-12-24 19:49:00
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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