Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <layout>
- <data>
- <variable name="user" type="com.carlpoole.databindingstest.User"/>
- </data>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:bind="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
- android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
- android:paddingTop="@dimen/activity_vertical_margin"
- android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
- <EditText
- android:layout_width="200dp"
- android:layout_height="wrap_content"
- android:id="@+id/name"
- android:text="@{user.name}"
- bind:addTextChangedListener="@{user.nameChanged}"
- />
- <EditText
- android:layout_width="200dp"
- android:layout_height="wrap_content"
- android:id="@+id/email"
- android:layout_below="@+id/name"
- android:text="@{user.email}"/>
- <EditText
- android:layout_width="200dp"
- android:layout_height="wrap_content"
- android:id="@+id/age"
- android:layout_below="@+id/email"
- android:text="@{user.age}"/>
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_below="@+id/age"
- android:text="@{user.name}"/>
- </RelativeLayout>
- import android.databinding.BaseObservable;
- import android.databinding.Bindable;
- import android.text.Editable;
- import android.text.TextWatcher;
- public class User extends BaseObservable {
- private String name;
- private String email;
- private String age;
- public User(String name, String email, String age) {
- this.name = name;
- this.email = email;
- this.age = age;
- }
- public User(){};
- @Bindable
- public String getName() {
- return name;
- }
- @Bindable
- public String getEmail() {
- return email;
- }
- @Bindable
- public String getAge() {
- return age;
- }
- public final TextWatcher nameChanged = new TextWatcher() {
- @Override
- public void afterTextChanged(Editable s) {
- if(!s.toString().equalsIgnoreCase(name))
- setName(s.toString());
- }
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {}
- };
- public void setName(String name) {
- this.name = name;
- notifyPropertyChanged(com.carlpoole.databindingstest.BR.name);
- }
- public void setEmail(String email) {
- this.email = email;
- }
- public void setAge(String age) {
- this.age = age;
- }
- }
- import android.databinding.DataBindingUtil;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import com.carlpoole.databindingstest.databinding.ActivityMainBinding;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
- User user = new User("Carl Poole", "mail@carlpoole.com", "26");
- binding.setUser(user);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement