gradle添加:
android {
dataBinding{
enabled true
}
}
User类
public class User {
private String name;
private String age;
//构造函数
public User(String name, String age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
activity_main布局文件
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="user"
type="com.example.myapplication.User" />
</data>
<RelativeLayout
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="mvvm.wangjing.com.mvvm.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@{`My name is `+ user.name+` I'm `+user.age+` years old `}" />
</RelativeLayout>
</layout>
MainActivity类
public class MainActivity extends AppCompatActivity {
ActivityMainBinding Binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
Binding= DataBindingUtil.setContentView(this,R.layout.activity_main);
User user = new User("jing", "20");
Binding.setUser(user);
}
}
出现的问题:第一次发现找不到ActivityMainBinding类,后面我先把布局文件弄好后,再去导入就可以了。
双向绑定
User类修改?Observable方式
public class User {
public ObservableField<String> name = new ObservableField<>() ;
public ObservableInt age = new ObservableInt();
public User(String name, int age) {
this.name.set(name);
this.age.set(age);
}
}
运行正常,但是User类报红:related problem,我也不知道什么原因,希望大家帮忙改正。
|