IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android——GT-DataBinding(彻底解放 findViewById) -> 正文阅读

[移动开发]Android——GT-DataBinding(彻底解放 findViewById)

熟悉 GT 库的朋友们有福了,我们一起来看看获取组件的变化

第一版:Android 原生版本

public class MainActivity extends AppCompatActivity {

    private TextView tv;//定义组件

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv = findViewById(R.id.tv);//获取组件
        tv.setText("恭喜发财");//使用组件

    }

}

定义组件后使用??findViewById 进行组件获取后再使用定义的组件进行使用,几乎每个页面都要写这种获取组件的?findViewById,项目长久写下来还是需要一番流水线般的工作,为了减少这种代码的编写,后面GT库出了类似于 小刀(Butter Knife) 一样获取组件的方法。详情实现请点击下面链接。点击这里https://blog.csdn.net/qq_39799899/article/details/100150702https://blog.csdn.net/qq_39799899/article/details/100150702

第二版:使用GT_View 获取组件

public class MainActivity extends AppCompatActivity {

    @GT.Annotations.GT_View(R.id.tv)//获取组件
    private TextView tv;//定义组件
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        GT.build(this);//绑定Activity

        tv.setText("恭喜发财");//使用组件

    }

}

这种就类似于小刀一样的获取组件,在定义组件、获取组件、使用组件上,多了一个 绑定Activity操作,将所有的获取组件方式都可以定义在 方法之外,且绑定的对象有:Activity、Fragment、DialogFragment、FloatingWindow(GT库独有-悬浮窗页面)、Adapter,等等,只要是页面为Activity或View 均可使用该绑定进行同意获取组件。

第二版:优化版

@GT.Annotations.GT_AnnotationActivity(R.layout.activity_main)//加载布局
public class MainActivity extends GT.GT_Activity.AnnotationActivity {

    @GT.Annotations.GT_View(R.id.tv)//获取组件
    private TextView tv;//定义组件

    @Override
    protected void initView(Bundle savedInstanceState) {
        super.initView(savedInstanceState);
        tv.setText("恭喜发财");//使用组件
    }
}

如果是继承了GT 库里的 AnnotationActivity、AnnotationFragment、AnnotationDialogFragment、AnnotationFloatingWindow、AnnotationAdapter、那就均可以省去编写 绑定的方法,使用起来颇为方便。接下来博主就要介绍这新出的GT-DataBinding 获取组件的方法了。

第三版:使用GT-DataBinding?获取组件

//指定布局并绑定数据类型为Activity
@DataBinding(setLayout = "activity_main",setBindingType = DataBinding.Activity)
public class MainActivity extends AppCompatActivity {

    private MainActivityBinding dataBinding;//定义绑定 dataBinding

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dataBinding = GT.DataBindingUtil.setContentView(this);//组件数据绑定
      //dataBinding = GT.DataBindingUtil.setContentView(this, view);//除Activity外其他的组件绑定

        //使用组件
        dataBinding.tv1.setText("你好1");
        dataBinding.tv2.setText("你好2");
        dataBinding.tv3.setText("你好3");
        dataBinding.tv4.setText("你好4");

    }

}

绑定好组件数据后,直接使用绑定对象进行使用组件即可,在第三代获取组件之前如果页面组件有10—20个需要获取的组件,那么在页面代码上,一排长长的获取组件代码将会是一个非常不雅观的场面,在第三代获取组件上就只需要一次绑定组件,该页面所有写有ID的组件均会被初始化好,供你使用,省去了一大批流水线代码。接下来我们来看看第四版获取组件。

第四版:使用 ****(自定义类名)Binding 获取组件

//指定绑定的布局,并设置绑定数据的类型
@DataBinding(setLayout = "activity_main", setBindingType = DataBinding.Activity)
@GT.Annotations.GT_AnnotationActivity(R.layout.activity_main)//加载布局
public class MainActivity extends MainActivityBinding {

    @Override
    protected void initView(Bundle savedInstanceState) {
        super.initView(savedInstanceState);
        
        //直接使用组件
        tv1.setText("恭喜发财1");
        tv2.setText("恭喜发财2");
        tv3.setText("恭喜发财3");
        tv4.setText("恭喜发财4");

    }
}

看了这一番组件使用,没有接触过?Kotlin语言 的小伙伴是不是很疑惑,定义组件与获取组件都没看见就直接使用了,这样就彻底解放组件获取的代码了,不管你是5个组价获取还是100个组件获取都不用看到一排排头皮发麻的组件获取了。使用步骤也是非常简单:

第一步:指定绑定的布局,并设置绑定数据的类型

@DataBinding(setLayout = "当前布局文件名", setBindingType = 绑定数据的类型)

第二步:继承类名+Binding 的类,并注解加载布局

(注意:很多小伙伴在这里会发现类名+Binding的时候会爆红,那是因为你还没有编译,在编译的时候,继承类名+Binding 的类就会自动生成的)

@GT.Annotations.GT_AnnotationActivity(R.layout.activity_main)//加载布局
public class MainActivity extends MainActivityBinding {

后面就就可以直接使用你布局里所有写有 ID 号的组件了

接下来就来介绍如何使用第四版的组件获取:

第1步:依赖GT库

?使用前需要依赖库:

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}

(注意:当前演示的版本号是1.3.5.1版本,今后会有新的版本发布,欢迎使用最新版)

dependencies {
        ...
	implementation 'com.github.1079374315:GSLS_Tool:v1.3.5.2'
}

依赖详细教程:依赖GT库

第2步:下载gt-DataBinding.jar包并进行注册

?在GT官网上进行

第1下载网址:下载最新jar 包https://github.com/1079374315/GThttps://github.com/1079374315/GT

第2下载网址:

下载最新 jar 包http://gsls.3vfree.cn/GT/gt-DataBinding.jarhttp://gsls.3vfree.cn/GT/gt-DataBinding.jar

点击下载 jar 包

?下载下来后进行复制粘贴到AndroidStudio项目中并进行注册(记住是注册,不是依赖)

?然后再在 build.gradle(:app) 这里进行注册,如下:

?可供复制粘贴:

annotationProcessor files('libs/gt-DataBinding.jar')//注册 gt-DataBinding

?注意:当前演示的版本是v1.3.5.2,依赖GT库的版本请使用最新版。GT官网最新版https://github.com/1079374315/GThttps://github.com/1079374315/GT

?然后再进行同步 Sync Now

就可以向之前获取组件第四版的教程进行使用了。

点个关注点个赞呗(〃'▽'〃),关注博主最新发布库:GitHub - 1079374315/GT

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-14 21:50:06  更:2021-11-14 21:52:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:39:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码