【问题标题】:Android Architecture Components: dataBinding not changing TextView valueAndroid架构组件:dataBinding不改变TextView值
【发布时间】:2017-11-20 19:18:34
【问题描述】:

您好,我正在尝试新的 Android 架构组件,我已经构建了一个简单的应用程序,现在我想将 Texview 绑定到我的 ViewModel 中的一个变量,我之前这样做过,但我没有使用组件。现在 getter 没有被调用,TextView 的值也没有改变。

主活动:

public class MainActivity extends AppCompatActivity implements LifecycleOwner {

    public MainViewModel viewModel;

主视图模型:

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,所以我不确定这里发生了什么,因为它与之前版本的应用程序的代码相同。

【问题讨论】:

    标签: android xml mvvm data-binding


    【解决方案1】:

    您是否将此行添加到您的活动中(根据您的文件名):

    binding = DataBindingUtil.setContentView(this, R.layout.activity_xml);
    viewModel = ViewModelProviders.of(this).get(ActivityViewModel.class);
    
    binding.setLifecycleOwner(this);
    binding.setViewModel(viewModel);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      • 1970-01-01
      相关资源
      最近更新 更多