Sunday, 3 February 2019

mvvm sample

MVVM sample


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>




No comments:

Post a Comment