因此,我想做的是从api获取信息并将其添加到模型:MutableList,然后将模型信息设置为回收者视图。但是问题是,在api获得所有响应之前调用了回收者视图,因此,我的视图为空。这就是我的结论,如果我错了,请纠正我。但是,如果没有,如何解决此问题?
class FavouritesFragment(myContext : HomeActivity, fvts: ArrayList<String>): Fragment() {
var activity = myContext
var favourites = fvts
var model : MutableList<CurrentWeatherModel> = mutableListOf()
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_favourites, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
init()
}
private fun init() {
model.clear()
favourites.forEach {
getForecastModel(it)}
Log.d("other", model.size.toString())
favouritesRecyclerView.layoutManager = LinearLayoutManager(activity)
val adapter = CurrentRecyclerViewAdapter(model, activity)
favouritesRecyclerView.adapter = adapter
}
private fun getForecastModel(value: String?) {
if (!value.isNullOrEmpty()) {
DataLoader.getRequestForQuery("weather", value, "a77840cefd5a443793bd5e6b54776905", object: CustomCallback{
override fun onSuccess(result: String) {
if (result != "null") {
var converted = Gson().fromJson(result, CurrentWeatherModel::class.java)
model.add(converted)
}
}
})
}
}
}
您需要通知适配器数据已更改,可以通过adapter.notifyDataSetChanged()
在数据已更改时调用来实现此目的。
因此,您需要在将数据添加到列表之后添加此行
model.add(converted)
adapter.notifyDataSetChanged()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句