[Android]Data Binding1

[Android]Data Binding1_第1张图片
Paste_Image.png
[Android]Data Binding1_第2张图片
Paste_Image.png

使用

app build.grable

android {
.......
    dataBinding{
        enabled=true;
    }
}

xml外面包裹一层


...

去除findViewById

  binding.firstName.setText("FirstName");
  binding.lastName.setText("LastName");

xml中:

 

 

变量绑定

public class Employee {
    public String firstName;
    public String lastName;

    public Employee(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
}



    
        
   

    

        

        

        

        

    

public class MainActivity extends AppCompatActivity {

    private Employee employee=new Employee("Zhang","San");

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActivityMainBinding binding= DataBindingUtil.setContentView(this,R.layout.activity_main);
        // binding.setEmployee(employee);
        //或
        binding.setVariable(BR.employee,employee);
    }
}

事件绑定

方法引用

public class MainActivity extends AppCompatActivity {

    private Employee employee=new Employee("Zhang","San");
    private ActivityMainBinding binding;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         binding= DataBindingUtil.setContentView(this,R.layout.activity_main);
        binding.setEmployee(employee);
        binding.setPresenter(new Presenter());
    }
    public class Presenter{
       public void onTextChanged(CharSequence s, int start, int before, int count){
           employee.firstName= s.toString();
           binding.setEmployee(employee);
       }
    }
}


    
        
        
    

    

        

        

        

        

    

onClick(方法引用)

public class Presenter{
       public void onTextChanged(CharSequence s, int start, int before, int count){
           employee.firstName= s.toString();
           binding.setEmployee(employee);
       }

        public void onClick(View view){
            Toast.makeText(MainActivity.this, "点到了", Toast.LENGTH_SHORT).show();
        }
    }

监听器绑定

  public class Presenter{
       public void onTextChanged(CharSequence s, int start, int before, int count){
           employee.firstName= s.toString();
           binding.setEmployee(employee);
       }

        public void onClick(View view){
            Toast.makeText(MainActivity.this, "点到了", Toast.LENGTH_SHORT).show();
        }

        public  void  onClickListenerBinding(Employee employee){
            Toast.makeText(MainActivity.this, employee.lastName, Toast.LENGTH_SHORT).show();
        }
    }
   
[Android]Data Binding1_第3张图片
Paste_Image.png
[Android]Data Binding1_第4张图片
Paste_Image.png

你可能感兴趣的:([Android]Data Binding1)