1. xml文件
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="userViewModel"
type="com.grad.user.UserViewModel" />
</data>
<RelativeLayout
android:id="@+id/rl_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="30dp"
>
<EditText
android:id="@+id/username_register"
android:layout_width="@dimen/edittext_width"
android:layout_height="@dimen/edittext_height"
android:hint="用户名"
android:background="@drawable/et_background"
android:text="@={userViewModel.username}" />
<EditText
android:id="@+id/password_register"
android:layout_width="@dimen/edittext_width"
android:layout_height="@dimen/edittext_height"
android:hint="密码"
android:inputType="textPassword"
android:layout_below="@id/username_register"
android:layout_marginTop="30dp"
android:background="@drawable/et_background"
android:text="@={userViewModel.password}" />
<Button
android:id="@+id/register_button"
android:layout_width="@dimen/edittext_width"
android:layout_height="50dp"
android:text="注册"
android:layout_below="@id/password_register"
android:layout_marginTop="30dp"
android:background="@drawable/button_bg1"
android:onClick="@{userViewModel::onRegisterClicked}"/>
</RelativeLayout>
</layout>
UserViewModel.java
public class UserViewModel{
private ObservableField<User> userObservableField;
private MutableLiveData<Integer> registerStatus;
public UserViewModel(User user) {
userObservableField = new ObservableField<>();
registerStatus = new MutableLiveData<Integer>(DefaultVals.UNDER_REGISTER);
userObservableField.set(user);
}
public User getUser(){
return userObservableField.get();
}
public MutableLiveData<Integer> getRegisterStatus() {
return registerStatus;
}
public void setRegisterStatus(MutableLiveData<Integer> registerStatus) {
this.registerStatus = registerStatus;
}
public String getUsername(){
return userObservableField.get().getUsername();
}
public void setUsername(String userName){
userObservableField.get().setUsername(userName);
}
public String getPassword(){
return userObservableField.get().getPassword();
}
public void setPassword(String password){
userObservableField.get().setPassword(password);
}
public void onRegisterClicked(View view){
}
}
MainActivity.java
public class RegisterActivity extends AppCompatActivity {
private UserViewModel mUserViewModel;
private ActivityRegisterBinding mBinding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBinding = DataBindingUtil.setContentView(this,R.layout.activity_register);
mBinding.setLifecycleOwner(this);
if(mUserViewModel == null){
mUserViewModel = new UserViewModel(new User());
mBinding.setUserViewModel(mUserViewModel);
}
mUserViewModel.getRegisterStatus().observe(this, new Observer<Integer>() {
@Override
public void onChanged(Integer status) {
}
});
}