RecyclerView notifyDataSetChanged()不工作 - Kotlin

时间:2017-12-24 14:44:57

标签: android kotlin recycler-adapter

在调用library(tidyverse) library(forecast) mylist %>% split(.$Group) %>% map(~auto.arima(.$Value))

RecyclerView没有更新,我发现问题但没有解决方案 这是我更改数据的代码。

notifyDataSetChanged()

fun changeData(data: List<AccountLite>) { // checking the size of the list before logI("accountLiteList.size before: " + accountLiteList.size) accountLiteList = data.toMutableList() // checking the size of the list after logI("accountLiteList.size after: " + accountLiteList.size) notifyDataSetChanged() } 仍然返回0。

以下是getItemCount()的代码。

getItemCount()

这是日志

override fun getItemCount(): Int {
    logI("getItemCount: " + accountLiteList.size)
    return accountLiteList.size
}

为什么AccountsRecyclerAdaptor: accountLiteList.size before: 0 AccountsRecyclerAdaptor: accountLiteList.size after: 19 AccountsRecyclerAdaptor: getItemCount: 0 AccountsRecyclerAdaptor: getItemCount: 0 ... 返回0,而getItemCount()在任何地方都没有改变 Here是完整的代码。

2 个答案:

答案 0 :(得分:0)

我认为您应该使用notifyItemChanged(position);,因为您要添加项目:

Int count=0;
for (item: AccountLite in data) 
{
   accountLiteList.add(item);
   notifyItemChanged(count);
   count++;
}

答案 1 :(得分:0)

我试图使用AsyncTask调用API。经过大量尝试,我找到了一种可行的解决方案,但不知道为什么。

我刚刚将inner关键字添加到Async类中,并且它起作用了。

示例:

inner class ApiCall : AsyncTask