美文网首页
3. BaseObservable

3. BaseObservable

作者: C二叔 | 来源:发表于2016-10-10 13:38 被阅读0次

通过Observable的方式去通知UI数据已经改变了

  1. 我们的实体类要继承BaseObservale类
  2. Getter上使用注解@Bindable
  3. 在Setter里调用方法notifyPropertyChanged

修改 javebean User.java

public class User extends BaseObservable {    
String username;    
String password;    

public User(String username, String password) {        
this.username = username;        
this.password = password;    
}    

@Bindable    
public String getUsername() {        
return username;    
}    

@Bindable    
public String getPassword() {        
return password;    
}    

public void setUsername(String username) {        
this.username = username;        
notifyPropertyChanged( BR.username);    
}    

public void setPassword(String password) {        
this.password = password;        
notifyPropertyChanged(BR.password);    
}

}

xml文件如下:

<?xml version="1.0" encoding="utf-8"?>

<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>    
<variable        
    type="com.lefeee.dbdemoapplication.bean.User"        
    name="user" />    
<variable       
    type="com.lefeee.dbdemoapplication.MainActivity"        
    name = "click" />
</data>

<LinearLayout    xmlns:tools="http://schemas.android.com/tools"  
android:id="@+id/activity_main"    
android:layout_width="match_parent"    
android:layout_height="match_parent"    
android:orientation="vertical"    
tools:context="com.lefeee.dbdemoapplication.MainActivity">    

<TextView        
android:layout_width="wrap_content"        
android:layout_height="wrap_content"        
android:text="@{user.username}" />    

<TextView        
android:layout_width="match_parent"     
android:layout_height="wrap_content"        
android:text="@{user.password}"        
android:clickable="true"        
android:onClick="@{click.click}"   />

</LinearLayout>

</layout>

activity中

public class MainActivity extends AppCompatActivity {    
User user1;    

@Override    
protected void onCreate(Bundle savedInstanceState) {    
super.onCreate(savedInstanceState);        

ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);        
user1 = new User("jack", "123456");        
binding.setUser( user1 );        
binding.setClick(this);    
}    

public void click( View view){            
user1.setUsername("hero");   
}

}

相关文章

  • 3. BaseObservable

    通过Observable的方式去通知UI数据已经改变了 我们的实体类要继承BaseObservale类 Gette...

  • Data Binding Observable

    BaseObservable 两种域改变通知UI刷新 @Bindable和notifyPropertyChange...

  • Jetpack学习-4-DataBinding

    使用 然后同步新建继承自BaseObservable类 在字段get方法上添加@Bindable注解,在set方法...

  • MVVM中实体类的两种写法,简单实用

    1说明:1、首先继承BaseObservable类2、给成员变量的get方法添加@Bindable注解3、在成员变...

  • Android DataBinding系列详解(三)

    除了上文说到的继承BaseObservable类,通过注解实现动态绑定外,Android SDK里面封装好了Obs...

  • DataBind第六篇:数据绑定刷新BaseObservable

    有的时候我们更新了一个对象的一个字段,这个时候,我们一般是这样的: 但如果要更新多个字段: 这样就可能并不美观,你...

  • 3.

    四时田园杂兴 宋 范成大 高田二麦接山青,傍水低田绿未耕...

  • 3.

    明明每天都无聊至极 却每次都是熬到深夜。

  • 3.

    3.宴前谋 眼前的女子一头红发,忽闪忽闪的绿色眼瞳里面防佛若有光,一身与头发相配的简单红色宫服,略施粉黛,看起来甚...

  • 3.

    昨天晚上我给我妈打电话,让她给我买点儿零食吃,我妈下班,正骑电动车走到一半,就接到了我的电话。 我...

网友评论

      本文标题:3. BaseObservable

      本文链接:https://www.haomeiwen.com/subject/fczmyttx.html