gpt4 book ai didi

android - DataBinding ObserableField 不更新 View

转载 作者:太空狗 更新时间:2023-10-29 15:58:46 26 4
gpt4 key购买 nike

我浏览了很多与数据绑定(bind)相关的帖子,但没有找到解决我的问题的方法。我创建了一个示例应用程序来学习数据绑定(bind)。

预期行为:我有一个 edittext 和 textview。 textview 应该根据我在 edittext 中写的任何内容进行更新。

问题:我创建了一个 Observable 并将其链接到 edittext 和 textview。在 edittext 中写入时,我的 textview 没有更新。我在这里做错了什么。请检查下面的代码-

主 Activity .java

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding activityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);
activityMainBinding.setStudent(new Student("Rahul"));
activityMainBinding.executePendingBindings();
}
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<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="student"
type="com.rahulchaurasia.databindingtest.Student"/>
</data>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.rahulchaurasia.databindingtest.MainActivity">

<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="@{student.name}"/>

<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{student.name}"/>

</LinearLayout>
</layout>

学生.java

public class Student {
public ObservableField<String> name;

public Student(String n) {
name = new ObservableField<>(n);
}
}

请帮帮我。

最佳答案

EditText 的绑定(bind)应该是双向的@={student.name}

关于android - DataBinding ObserableField<String> 不更新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48338976/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com