MVVM sample
android{
dataBinding {
enabled = true
}
}
usermodel:
android{
dataBinding {
enabled = true
}
}
usermodel:
public class User { private String username; private String password; public String usernamehint; public String passwordhint; public User() { } public User(String usernamehint, String passwordhint) { this.usernamehint = usernamehint; this.passwordhint = passwordhint; } }
viewmodel:
public class UserModel extends BaseObservable { private String username; private String password; public String usernamehint; public String passwordhint; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; notifyPropertyChanged(R.id.email); } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; notifyPropertyChanged(R.id.pass); } public String getUsernamehint() { return usernamehint; } public void setUsernamehint(String usernamehint) { this.usernamehint = usernamehint; } public String getPasswordhint() { return passwordhint; } public void setPasswordhint(String passwordhint) { this.passwordhint = passwordhint; } public UserModel(User user) { this.usernamehint =user.usernamehint; this.passwordhint =user.passwordhint; } }interface:
public interface UserLogin { void onClickLogin(); }activity:private ActivityMainBinding activityMainBinding; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); activityMainBinding = DataBindingUtil.setContentView(this,R.layout.activity_main); UserModel um =new UserModel(new User("User Name","Password")); activityMainBinding.setLogin(um); activityMainBinding.setOnClickButtion(new UserLogin() { @Override public void onClickLogin() { Toast.makeText(getApplicationContext(),""+activityMainBinding.getLogin().getUsername(),Toast.LENGTH_LONG).show(); } }); }layout:<?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="Login" type="mvvm.mvvmsample.viewmodel.UserModel"> </variable> <variable name="onClickButtion" type="mvvm.mvvmsample.commands.UserLogin"> </variable> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" android:layout_margin="5dp" android:padding="5dp" tools:context=".MainActivity_"> <EditText android:id="@+id/email" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="@={Login.username}" android:hint="@{Login.usernamehint}" /> <EditText android:id="@+id/pass" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="@={Login.password}" android:hint="@{Login.passwordhint}" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorAccent" android:text="Login" android:onClick="@{(v)-> onClickButtion.onClickLogin()}" /> </LinearLayout>