80,481
社区成员
发帖
与我相关
我的任务
分享






[quote=引用 8 楼 moonFY 的回复:] [quote=引用 5 楼 sinat_41601930 的回复:] [quote=引用 4 楼 moonFY 的回复:] 在 Adapter中写个 update方法, 数据获取到后调用update方法 更新 RecyclerView
[/quote]
碰巧回看了一下....你这个方法貌似是行不通的,数据源的一个误区就是采用引用而不是修改数据的方法,就是说如果你一开始绑定了list,之后只有去使用list的add,remove等方法去操作,再去刷新他才会判断你的数据源发生改变,而赋值不过是改变了引用地址而已,原引用地址的数据并没有发生改变,所以无论怎么刷新页面都是不会变的[/quote]
你看懂了吗?他这个需求不就是你在说的这个吗?就是没有去调用一个 adapter.notifyDataSetChanged() 方法而已。我提供的方法不就是让他不要去做你说的事情,改为更新数据源。既然做了网络请求,不去更改数据源,而是在原来的数据源的身上做变动,那做网络请求干什么。[quote=引用 5 楼 sinat_41601930 的回复:] [quote=引用 4 楼 moonFY 的回复:] 在 Adapter中写个 update方法, 数据获取到后调用update方法 更新 RecyclerView
[/quote]
碰巧回看了一下....你这个方法貌似是行不通的,数据源的一个误区就是采用引用而不是修改数据的方法,就是说如果你一开始绑定了list,之后只有去使用list的add,remove等方法去操作,再去刷新他才会判断你的数据源发生改变,而赋值不过是改变了引用地址而已,原引用地址的数据并没有发生改变,所以无论怎么刷新页面都是不会变的我说几点我的意见 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进行调用,方便快捷.
在 Adapter中写个 update方法, 数据获取到后调用update方法 更新 RecyclerView
在 Adapter中写个 update方法, 数据获取到后调用update方法 更新 RecyclerView




可以Log打印一下,看看是否获取到了数据