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)