android - 使用 Retrofit、RXJava 和 Kotlin 从服务器调用数据
问题描述
嗨,我在使用改造和 rxjava 从服务器调用数据并将其显示在我的布局上时遇到了一些麻烦。我是 kotlin 开发的新手,所以我有点困惑。我的问题是我可以从服务器调用数据,但是当我尝试在我的布局上显示它时,它什么也没显示。这是我的代码:
我的模型:
data class StackOverFlowCoba(
@field:SerializedName("quota_max")
val quotaMax: Int? = null,
@field:SerializedName("quota_remaining")
val quotaRemaining: Int? = null,
@field:SerializedName("has_more")
val hasMore: Boolean? = null,
@field:SerializedName("items")
val items: List<ItemsItem?>? = null
)
我的主持人:
class MainPresenter : BasePresenter<StackOverFlowView> {
var modelView : StackOverFlowView?=null
val compositeDisposable = CompositeDisposable()
override fun onAttach(view: StackOverFlowView) {
modelView = null
}
override fun onDettach() {
modelView = null
}
fun getData()
{
compositeDisposable.add(RetrofitHttp.stackOverFlow.getdata().observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.newThread())
.subscribe({
t: StackOverFlowCoba? -> modelView?.onSuccess(t?.items)
}
,{t: Throwable? -> modelView?.onError()})
)
}
}
我的视图界面:
interface StackOverFlowView : BaseView {
fun onSuccess(data : List<ItemsItem?>?)
fun onError()
}
我的活动代码:
class Main : AppCompatActivity(),StackOverFlowView {
lateinit var mainPresenter : MainPresenter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.coba_stackoverflow)
initPresenter()
toast("something adajfaosdpa")
}
private fun initPresenter()
{
mainPresenter = MainPresenter()
mainPresenter.getData()
}
override fun onSuccess(data: List<ItemsItem?>?) {
user_id.text = data!![0]!!.owner!!.displayName
toast("something basdsadjk")
}
override fun onError() {
toast("something error")
}
override fun onAttachView() {
mainPresenter.onAttach(this)
mainPresenter.getData()
}
override fun onDettachView() {
mainPresenter.onDettach()
}
override fun onStart() {
onAttachView()
super.onStart()
}
override fun onStop() {
onDettachView()
super.onStop()
}
}
当我在我的 logcat 上检查它时,一切都很好,我的代码可以从服务器调用数据,但我不知道为什么我无法在我的布局中显示它。请帮助我,提前谢谢你!
解决方案
推荐阅读
- c++ - 在 CPP 中为变量动态分配数据类型
- python - 如何使用 dateutil.tz.tz.tzoffset 本地化使用 strptime 创建的时区幼稚日期时间?
- sql - when/case 语句的问题
- ruby-on-rails - find_each 如何在循环时处理数据库更新
- javascript - 如何获取图像推送的文本宽度?
- php - 如何在 WooCommerce 我的帐户菜单中将链接项目添加到另一个页面
- reactjs - 省略类型的部分以将该类型分成两部分
- azure-active-directory - 以访客身份登录外部租户 (B2B) 时的图形 API 访问
- php - 在 PHP 中登录后继续 SESSION
- python - 踢所有命令