使用RxJava + Kotlin解析数据时出错
所以我试图解析返回特定用户的组的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,甚至打印出GROUPS [0]时,我看到的都是正确的信息。 然而,当我尝试打印GROUPS [0]时,在这个compositeDisposable之外的任何地方,应用程序崩溃并且说它是null。 我在这里处理一个公然的范围问题? 这个compositeDisposable只能将我的数据保存在订阅方法本身中吗? 任何帮助在这里将不胜感激。
编辑:进一步添加下面的代码,在第一个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])
在异步响应中移动我的视图的实例化导致正确的数据显示。