【发布时间】:2019-04-23 03:36:49
【问题描述】:
我试图在遵守 MVVM 原则和使用数据绑定的同时突出显示一个 recyclerview 项目。但我无法理解如何处理选择行。
我目前使用以下接口将我的 recyclerview 项目 onclick 传递给 viewmodel:
public interface ItemClickListener
{
void onItemClicked(String id);
}
view onclick 是数据绑定的:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="model"
type="Item" />
<variable
name="listener"
type="ItemClickListener" />
</data>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{model.name}"
android:onClick="@{() -> listener.onItemClicked(model.name)}" />
</layout>
viewmodel 实现了接口,所以我有一个对 Item 的引用。监听器在 Activity 中实例化并传递给适配器。
我将如何处理选择一个 recyclerview 项目(并给它一个背景颜色)?视图持有者是否应该实现 onClickListener(View view) 并将其与位置一起通过我的界面?
【问题讨论】:
标签: android android-recyclerview android-databinding android-mvvm