美文网首页
4.ObservableFields家族

4.ObservableFields家族

作者: C二叔 | 来源:发表于2016-10-10 14:33 被阅读0次
    1. 一个Person bean
    public class Person {    
    public ObservableField<String> name = new ObservableField<>();    
    public ObservableInt age = new ObservableInt();    
    public ObservableBoolean isMan = new ObservableBoolean();}
    
    1. 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.Person"       
    name="mPerson" />    
    <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="@{mPerson.name}" />    
    
    <TextView        
    android:layout_width="wrap_content"        
    android:layout_height="wrap_content"        
    android:text="@{ String.valueOf(mPerson.age) }" />    
    
    <TextView        
    android:layout_width="wrap_content"     
    android:layout_height="wrap_content"        
    android:text= '@{mPerson.isMan ? "man" : "woman"}'/>    
    
    <Button        
    android:layout_width="match_parent"        
    android:layout_height="wrap_content"        
    android:text="click"        
    android:onClick="@{click.click}"  />
    
    </LinearLayout>
    </layout>
    

    activity中

    public class MainActivity extends AppCompatActivity {    
    Person mPerson;    
    
    @Override    
    protected void onCreate(Bundle savedInstanceState) {      
      super.onCreate(savedInstanceState);        
      mPerson = new Person();        
      mPerson.name.set("jack");        
      mPerson.age.set(28);        
      mPerson.isMan.set(true);        
      ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);        
    binding.setMPerson(mPerson);        
    binding.setClick(this);    
    }    
    
    public void click(View view) {        
      mPerson.name.set("rose");        
      mPerson.age.set(22);        
      mPerson.isMan.set(false);        
    Toast.makeText(getApplicationContext(), "click", Toast.LENGTH_SHORT).show();    
    }
    
    }
    

    相关文章

      网友评论

          本文标题:4.ObservableFields家族

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