写一个用binding绑定ListView的代码
时间: 2024-05-11 12:18:29 浏览: 5
以下是一个使用Binding绑定ListView的示例代码:
```xml
<!-- 布局文件 -->
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:items="@{viewModel.items}" />
```
```kotlin
// ViewModel类
class MyViewModel : ViewModel() {
val items = MutableLiveData<List<String>>()
}
// Activity或Fragment中的代码
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = DataBindingUtil.setContentView<ActivityMainBinding>(this, R.layout.activity_main)
val viewModel = ViewModelProviders.of(this).get(MyViewModel::class.java)
binding.viewModel = viewModel
val listView = binding.listView
listView.adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, viewModel.items.value)
}
```
在布局文件中,我们使用了`app:items`属性将ViewModel中的`items`属性绑定到了ListView的数据源上。在Activity或Fragment中,我们将ViewModel实例传递给了DataBinding,并将ListView的数据源设置为ViewModel中的`items`属性。这样,当ViewModel中的`items`属性变化时,ListView的内容也会随之改变。