概述
步骤
1. 在plugins
里添加id 'kotlin-kapt'
2. 在android
里配置添加以下代码:
buildFeatures{
dataBinding = true
}
kapt {
generateStubs = true
}
3. 在dependencies
里添加以下代码:
kapt "com.android.databinding:compiler:4.1.3"
这里有个4.1.3
,是根据下面这个位置来的:
4. 此时的MainActivity
,就不应该使用setContentView(R.layout.activity_main)
了,而应该是:
class MainActivity: Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = DataBindingUtil.setContentView<ViewDataBinding>(this, R.layout.activity_main)
val values = MainValues()
binding.setVariable(BR.values, values)
values.hello = "你好,世界"
}
}
5. MainValues
类是自定义的,其中存放着一些在界面显示的内容,例如字符串图片这样的,还可以包含点击事件的方法,此时里面只有一个hello
变量。
6. activity_main.xml
的内容:
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name="values"
type="xxx.xxx.xxx.MainValues" />
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{values.hello}" />
</LinearLayout>
</layout>
这样运行可以看到以下:
在应用onCreat()
时更新的数据不用提示更新,但在其它地方,应该注意在更新数据需要显示时,调用binding.notifyPropertyChanged(BR.xx)
或者binding.notifyChange()
。
没有标题栏经过以前尝试发现是因为这个Activity是继承的Activity()
而不是AppCompatActivity()
,至于细节就没探究了,与主题有关吧。
7. 至于点击事件
可以给按钮的onClick如此赋值:@{() -> values.onClick()}
,onClick
是一个自定义的方法,可以传递参数,因此可以(view) -> values.onClick(view)
,以view
作点击事件区分;也可以@{viewModel::click}
,不带参数。
结束
内容有错误欢迎指出,有遗漏很也欢迎补充,发这儿多是为了方便自己随时查看,当然完善点更是好事。
最后
以上就是伶俐帆布鞋为你收集整理的安卓 Kotlin 使用 MVVM 基本步骤的全部内容,希望文章能够帮你解决安卓 Kotlin 使用 MVVM 基本步骤所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复