您好我试用Android的新架构组件,我已经构建了一个简单的应用程序,现在我想将一个Texview绑定到我的ViewModel中的一个变量,我之前做过这个但是我没有#39; t使用组件。现在没有调用getter,TextView的值也没有改变。
MainActivity:
public class MainActivity extends AppCompatActivity implements LifecycleOwner {
public MainViewModel viewModel;
MainViewModel:
public class MainViewModel extends ViewModel {
private LatLng origin;
public LatLng getOrigin() {
return origin;
}
activity_main.xml中:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="jacopo.com.carbook.MainActivity">
<data>
<variable name="viewModel" type="jacopo.com.carbook.MainViewModel" />
</data>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{Double.toString(viewModel.origin.latitude)}"/>
</layout
在gradle文件中启用了dataBinding,因此我不确定这里发生了什么,因为它与之前版本的应用程序的代码相同。
答案 0 :(得分:0)
您是否已将以下行添加到活动中(根据文件名):
binding = DataBindingUtil.setContentView(this, R.layout.activity_xml);
viewModel = ViewModelProviders.of(this).get(ActivityViewModel.class);
binding.setLifecycleOwner(this);
binding.setViewModel(viewModel);