因此,我尝试解析返回特定用户组的JSON响应。一切都正确返回,我尝试将其添加到一个可变列表中,该列表应该在整个文件中保持不变。
private var GROUPS: MutableList<GroupObject> = ArrayList()
我的RxJava在这里打电话
val getUserGroups = ApiProvider.getUserGroups()
compositeDisposable.add(
getUserGroups.getUserGroups(prefs!!.accessToken)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe ({
result ->
result.groups.mapTo(GROUPS) {
GroupObject (
it.id, it.groupName
)
}
}, { error ->
error.printStackTrace()
})
)
当我打印出result.groups甚至打印出来时,一切看起来都很好。群组[0]给了我正确的信息。但是,当我尝试打印出GROUPS [0]时,在这个compositeDisposable之外的任何地方,应用程序崩溃并说它为null。我在这里处理一个明显的范围问题?这个compositeDisposable只在subscribe方法本身中保存我的数据吗?这里的任何帮助将不胜感激。
编辑:要进一步添加,下面的代码,在第一个system.out中显示信息,在第二个中它是null。
val getUserGroups = ApiProvider.getUserGroups()
compositeDisposable.add(
getUserGroups.getUserGroups(prefs!!.accessToken)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe ({
result ->
result.groups.mapTo(GROUPS) {
GroupObject (
it.id, it.groupName
)
}
System.out.println(GROUPS[0])
}, { error ->
error.printStackTrace()
})
)
System.out.println(GROUPS[0])
答案 0 :(得分:0)
在异步响应中移动我的视图的实例化导致正确的数据显示。