欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > Kotlin jetpack MVP

Kotlin jetpack MVP

2025/9/20 18:40:15 来源:https://blog.csdn.net/weixin_42142832/article/details/143716963  浏览:    关键词:Kotlin jetpack MVP

开启dataBinding

app build.gradle

android {buildFeatures {dataBinding true}
}
  • 一些依赖库
	def lifecycle_version = "2.4.1"// https://developer.android.google.cn/jetpack/androidx/releases/lifecycle?hl=en// LiveDataapi "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"// ViewModelapi "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"// optional - ProcessLifecycleOwner provides a lifecycle for the whole application processapi "androidx.lifecycle:lifecycle-process:$lifecycle_version"// Lifecycles only (without ViewModel or LiveData)api "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version"// 在Activity中使用viewModelsapi "androidx.activity:activity-ktx:1.3.1"// 在Fragment中使用viewModelsapi "androidx.fragment:fragment-ktx:1.3.6"

基类

abstract class BaseActivity<VDB : ViewDataBinding>(private var contentViewID:Int){protected lateinit var binding: VDB@CallSuperoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)binding = DataBindingUtil.setContentView(this, contentViewID)}
}

子类

class MainActivity : BaseActivity<ActivityMainBinding>(R.layout.activity_main){private val xVM: XxxxVM by viewModels()// 发起任务xVM.getXx(xId)// 处理结果xVM.xLiveData.observe(this) { bid ->}
}

xml布局

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"><data></data><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><FrameLayoutandroid:id="@+id/container"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1" /><includeandroid:id="@+id/tabLayout"layout="@layout/tab_main_activity" /></LinearLayout>
</layout>

处理任务的ViewMode

class BindBrandVM : ViewModel() {val xLiveData = MutableLiveData<String>()fun getXx(x: String) {RetrofitManager.api.xxxxx(FormBody.Builder().add("xxx", x).build()).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(object : BaseSubscriber<BaseHttpEntity<XxxxRes>>() {override fun onErr(throwable: Throwable) {}override fun onNext(res: BaseHttpEntity<XxxxRes>) {super.onNext(res)try {if (res.result != null) {val bid = res.result!!.bidxLiveData.value = bid}} catch (e: java.lang.Exception) {}}})}
}

还可以添加其他jetpack库。。。。。。。。。。。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词