android databinding自动注入:xml文件绑定Java View代码

Posted zhangphil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android databinding自动注入:xml文件绑定Java View代码相关的知识,希望对你有一定的参考价值。

android databinding自动注入:xml文件绑定Java View代码

关键做法是在xml写入对应的context上下文。举例:

(1)以activity为例,通常android开发先写一个上层的Java类,这个类申明一个android Activity:

package com.example.myapplication;

import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;


public class MyActivity extends AppCompatActivity 

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

(2)写一个xml布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MyActivity">

    <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="zhang" />
</LinearLayout>

一个很简单普通的布局,注意这个布局文件里面的这一行:

tools:context=".MyActivity"

这行代码告诉android编译系统,这个xml布局文件对应context是MyActivity.java,在编译阶段,android studio自动绑定这个xml布局和上层View的Java类(注入生成)。

(3)此时回到(1)中的MyActivity.java代码里面,补充上生成的绑定类。因为在(2)中定义的xml布局context是 .MyActivity,android studio自动会编译生成名为 ActivityMyBinding 的类,context里面定义的名字逆序,再加上Binding组合成类名:

package com.example.myapplication;

import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.example.myapplication.databinding.ActivityMyBinding;


public class MyActivity extends AppCompatActivity 

    private ActivityMyBinding binding;

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

        binding = ActivityMyBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        binding.text.setText("zhang phil");
    

https://blog.csdn.net/zhangphil/category_9269969.htmlhttps://blog.csdn.net/zhangphil/category_9269969.html

以上是关于android databinding自动注入:xml文件绑定Java View代码的主要内容,如果未能解决你的问题,请参考以下文章

Android DataBinding不能自动生成ViewDataBinding类的解决方法

Android进阶之MVVM+DataBinding框架模式(更新中)

Android基础——框架模式MVVM之DataBinding的实践

android 自定义View 使用 DataBinding 笔记

Android mvvm架构demo(DataBinding+LiveData+ViewModel+ Repository)

浅谈Android开发中的MVVM模式