Advertisement
Guest User

Untitled

a guest
Aug 31st, 2015
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.37 KB | None | 0 0
  1. <layout>
  2.  
  3. <data>
  4. <variable name="user" type="com.carlpoole.databindingstest.User"/>
  5. </data>
  6.  
  7. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  8. xmlns:bind="http://schemas.android.com/apk/res-auto"
  9. xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
  10. android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
  11. android:paddingRight="@dimen/activity_horizontal_margin"
  12. android:paddingTop="@dimen/activity_vertical_margin"
  13. android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
  14.  
  15. <EditText
  16. android:layout_width="200dp"
  17. android:layout_height="wrap_content"
  18. android:id="@+id/name"
  19. android:text="@{user.name}"
  20. bind:addTextChangedListener="@{user.nameChanged}"
  21. />
  22.  
  23. <EditText
  24. android:layout_width="200dp"
  25. android:layout_height="wrap_content"
  26. android:id="@+id/email"
  27. android:layout_below="@+id/name"
  28. android:text="@{user.email}"/>
  29.  
  30. <EditText
  31. android:layout_width="200dp"
  32. android:layout_height="wrap_content"
  33. android:id="@+id/age"
  34. android:layout_below="@+id/email"
  35. android:text="@{user.age}"/>
  36.  
  37. <TextView
  38. android:layout_width="wrap_content"
  39. android:layout_height="wrap_content"
  40. android:layout_below="@+id/age"
  41. android:text="@{user.name}"/>
  42.  
  43. </RelativeLayout>
  44.  
  45. import android.databinding.BaseObservable;
  46. import android.databinding.Bindable;
  47. import android.text.Editable;
  48. import android.text.TextWatcher;
  49.  
  50. public class User extends BaseObservable {
  51.  
  52. private String name;
  53. private String email;
  54. private String age;
  55.  
  56. public User(String name, String email, String age) {
  57. this.name = name;
  58. this.email = email;
  59. this.age = age;
  60. }
  61.  
  62. public User(){};
  63.  
  64. @Bindable
  65. public String getName() {
  66. return name;
  67. }
  68.  
  69. @Bindable
  70. public String getEmail() {
  71. return email;
  72. }
  73.  
  74. @Bindable
  75. public String getAge() {
  76. return age;
  77. }
  78.  
  79. public final TextWatcher nameChanged = new TextWatcher() {
  80. @Override
  81. public void afterTextChanged(Editable s) {
  82. if(!s.toString().equalsIgnoreCase(name))
  83. setName(s.toString());
  84. }
  85.  
  86. @Override
  87. public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
  88.  
  89. @Override
  90. public void onTextChanged(CharSequence s, int start, int before, int count) {}
  91. };
  92.  
  93. public void setName(String name) {
  94. this.name = name;
  95. notifyPropertyChanged(com.carlpoole.databindingstest.BR.name);
  96. }
  97.  
  98. public void setEmail(String email) {
  99. this.email = email;
  100. }
  101.  
  102. public void setAge(String age) {
  103. this.age = age;
  104. }
  105. }
  106.  
  107. import android.databinding.DataBindingUtil;
  108. import android.os.Bundle;
  109. import android.support.v7.app.AppCompatActivity;
  110. import com.carlpoole.databindingstest.databinding.ActivityMainBinding;
  111.  
  112. public class MainActivity extends AppCompatActivity {
  113.  
  114. @Override
  115. protected void onCreate(Bundle savedInstanceState) {
  116. super.onCreate(savedInstanceState);
  117.  
  118. ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
  119. User user = new User("Carl Poole", "mail@carlpoole.com", "26");
  120. binding.setUser(user);
  121.  
  122. }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement