求大佬看看关于RecyclerView的问题

sinat_41601930 2018-04-29 01:17:25

封装类文件应该没有错。。。然后app一片空白。。。什么东西都没有,Android studio也没有报错。。。求大佬帮忙看下是什么问题qaq
...全文
1614 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
bt侠 2018-05-04
  • 打赏
  • 举报
回复
我说几点我的意见 1. 你网络请求为异步,而你一开始就把你的List传入,在设置布局的时候数据源长度为0,不显示在情理之中. 2. 报的错误可能是你的getPlay是用到了R.string之类的,已经告诉你根据id找不到resource,麻烦仔细检查. 3. 在获取到数据后需要刷新,需要调用adapter的刷新方法. 4. 个人习惯传入List后采用adpterList.addAll(list);而不是adpterList = list;的方法,因为activity中的list改变会影响到adapter内的数据,而经常会注意不到. 5. 在adapter内部自己编写CRUD的方法并在结尾加上刷新方法,调用时通过adapter.XXX进行调用,方便快捷.
moonFY 2018-05-04
  • 打赏
  • 举报
回复
引用 5 楼 sinat_41601930 的回复:
[quote=引用 4 楼 moonFY 的回复:]
在 Adapter中写个 update方法, 数据获取到后调用update方法 更新 RecyclerView

改后就报错了...没有附加适配器,跳过布局?...然后下面那个报错是setText...会不会是布局文件有问题啊...[/quote]
难道是我没说清楚吗?在 Adapter 中 写个update 方法 获取数据后 调用 Adapter 的update 方法 更新 Adapter 中的 数据 从而更新 RecyclerView
moonFY 2018-05-04
  • 打赏
  • 举报
回复
引用 6 楼 sinat_41601930 的回复:
引用 4 楼 moonFY 的回复:
在 Adapter中写个 update方法, 数据获取到后调用update方法 更新 RecyclerView
失去理智...
我这么做有什么问题?你指出来。别只逼逼一句
moonFY 2018-05-04
  • 打赏
  • 举报
回复
引用 11 楼 qq_28339011 的回复:
[quote=引用 8 楼 moonFY 的回复:] [quote=引用 5 楼 sinat_41601930 的回复:] [quote=引用 4 楼 moonFY 的回复:] 在 Adapter中写个 update方法, 数据获取到后调用update方法 更新 RecyclerView
改后就报错了...没有附加适配器,跳过布局?...然后下面那个报错是setText...会不会是布局文件有问题啊...[/quote] 难道是我没说清楚吗?在 Adapter 中 写个update 方法 获取数据后 调用 Adapter 的update 方法 更新 Adapter 中的 数据 从而更新 RecyclerView [/quote] 碰巧回看了一下....你这个方法貌似是行不通的,数据源的一个误区就是采用引用而不是修改数据的方法,就是说如果你一开始绑定了list,之后只有去使用list的add,remove等方法去操作,再去刷新他才会判断你的数据源发生改变,而赋值不过是改变了引用地址而已,原引用地址的数据并没有发生改变,所以无论怎么刷新页面都是不会变的[/quote] 你看懂了吗?他这个需求不就是你在说的这个吗?就是没有去调用一个 adapter.notifyDataSetChanged() 方法而已。我提供的方法不就是让他不要去做你说的事情,改为更新数据源。既然做了网络请求,不去更改数据源,而是在原来的数据源的身上做变动,那做网络请求干什么。
bt侠 2018-05-04
  • 打赏
  • 举报
回复
引用 8 楼 moonFY 的回复:
[quote=引用 5 楼 sinat_41601930 的回复:] [quote=引用 4 楼 moonFY 的回复:] 在 Adapter中写个 update方法, 数据获取到后调用update方法 更新 RecyclerView
改后就报错了...没有附加适配器,跳过布局?...然后下面那个报错是setText...会不会是布局文件有问题啊...[/quote] 难道是我没说清楚吗?在 Adapter 中 写个update 方法 获取数据后 调用 Adapter 的update 方法 更新 Adapter 中的 数据 从而更新 RecyclerView [/quote] 碰巧回看了一下....你这个方法貌似是行不通的,数据源的一个误区就是采用引用而不是修改数据的方法,就是说如果你一开始绑定了list,之后只有去使用list的add,remove等方法去操作,再去刷新他才会判断你的数据源发生改变,而赋值不过是改变了引用地址而已,原引用地址的数据并没有发生改变,所以无论怎么刷新页面都是不会变的
逗比的人生 2018-05-04
  • 打赏
  • 举报
回复
引用 9 楼 qq_28339011 的回复:
我说几点我的意见 1. 你网络请求为异步,而你一开始就把你的List传入,在设置布局的时候数据源长度为0,不显示在情理之中. 2. 报的错误可能是你的getPlay是用到了R.string之类的,已经告诉你根据id找不到resource,麻烦仔细检查. 3. 在获取到数据后需要刷新,需要调用adapter的刷新方法. 4. 个人习惯传入List后采用adpterList.addAll(list);而不是adpterList = list;的方法,因为activity中的list改变会影响到adapter内的数据,而经常会注意不到. 5. 在adapter内部自己编写CRUD的方法并在结尾加上刷新方法,调用时通过adapter.XXX进行调用,方便快捷.
正解
moonFY 2018-05-02
  • 打赏
  • 举报
回复
在 Adapter中写个 update方法, 数据获取到后调用update方法 更新 RecyclerView
头发还没秃a 2018-05-02
  • 打赏
  • 举报
回复
你线程获取到数据后没有刷新 RecycleView的数据
sinat_41601930 2018-05-02
  • 打赏
  • 举报
回复
引用 4 楼 moonFY 的回复:
在 Adapter中写个 update方法, 数据获取到后调用update方法 更新 RecyclerView
失去理智...
sinat_41601930 2018-05-02
  • 打赏
  • 举报
回复
引用 4 楼 moonFY 的回复:
在 Adapter中写个 update方法, 数据获取到后调用update方法 更新 RecyclerView


改后就报错了...没有附加适配器,跳过布局?...然后下面那个报错是setText...会不会是布局文件有问题啊...
sinat_41601930 2018-04-30
  • 打赏
  • 举报
回复
引用 1 楼 全寅的回复:
可以Log打印一下,看看是否获取到了数据
我回去试下……话说RecyclerView是没有问题嘛……
这个人中暑了 2018-04-29
  • 打赏
  • 举报
回复
可以Log打印一下,看看是否获取到了数据

80,352

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧