这里有个自定义组件:
<LinearLayout...>
<TextView android:id="@+id/textView" .../>
<EditText android:id="@+id/editText" .../>
</LinearLayout>
对应的 Java 文件:
public class CustomView extends LinearLayout {
TextView title;
EditText value;
public CustomView(Context context, @Nullable AttributeSet attrs) { ... }
getter return String...
setter (String)...
}
对应的 ViewModel:
public String title = "";
public String value = "";
@Bindable
getter...
setter...notifyPropertyChanged(...)
主界面 activity_main.xml
<layout...>
<data><variable name="vm" type="com.test.test.CustomViewModel"/></data>
<android.support.constraint.ConstraintLayout>
<com.test.test.CustomView
android:onClick="@{()->vm.onClick()}"
app:title="@={vm.title}"
app:value="@={vm.value}"/>
</android.support.constraint.ConstraintLayout>
</layout>
现在的问题是,在 activity_main 界面修改了值,viewmodel 接收不到。但在 viewmodel 里修改,界面能显示。 想请教一下应该怎么做,网上搜了半天也没解决>.< 有个设置 adapter 的方法,但我试了,貌似没被解析
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.