Android將 ViewBinding封裝到BaseActivity基類中(Java版)

在Android中使用Java語言將ViewBinding封裝到基類中,操作步驟如下:

1、在項目的build.gradle文件中啟用了ViewBinding,添加以下代碼:

android {...buildFeatures {viewBinding true}
}

2、創建一個名為“BaseActivity”的基類,繼承自AppCompatActivity,并使用“泛型參數<VB>表示ViewBinding類型。在這個基類中實現ViewBinding的初始化和綁定。

import androidx.appcompat.app.AppCompatActivity;
import androidx.viewbinding.ViewBinding;public abstract class BaseActivity<VB extends ViewBinding> extends AppCompatActivity {protected VB viewBinding;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);viewBinding = initViewBinding();setContentView(viewBinding.getRoot());initData();}protected abstract VB initViewBinding();/* 子類中:后續具體執行業務邏輯的方法 */protected abstract void initData();
}

3、在具體的Activity中,繼承自BaseActivity,并指定“ViewBinding的類型”。例如:Activity名為MainActivity,可以這樣實現:

import com.example.demo.databinding.ActivityMainBinding;public class MainActivity extends BaseActivity<ActivityMainBinding> {@Overridepublic ActivityMainBinding  initViewBinding() {return ActivityMainBinding.inflate(LayoutInflater.from(this));}@Overridepublic void init() {//處理具體業務viewBinding.text.setText("hello"); //TextView調用viewBinding.button.setText("hello"); //Button調用}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/697836.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697836.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697836.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue2和vue3 setup beforecreate create生命周期時間比較

創建一個vue程序&#xff0c;vue3可以兼容Vue2的寫法&#xff0c;很流暢完全沒問題 寫了一個vue3組件 <template><div></div> </template><script lang"ts"> import {onMounted} from vue export default{data(){return {}},beforeCr…

解決SpringAMQP工作隊列模型程序報錯:WARN 48068:Failed to declare queue: simple.queue

這里寫目錄標題 1.運行環境2.報錯信息3.解決方案4.查看解決之后的效果 1.運行環境 使用docker運行了RabbitMQ的服務器&#xff1a; 在idea中導入springAMQP的jar包&#xff0c;分別編寫了子模塊生產者publisher&#xff0c;消費者consumer&#xff1a; 1.在publisher中運行測試…

【機器學習的主要任務和應用領域】

曾夢想執劍走天涯&#xff0c;我是程序猿【AK】 目錄 簡述概要知識圖譜 簡述概要 了解機器學習的主要任務和應用領域 知識圖譜 機器學習的主要任務可以分為監督學習、無監督學習和半監督學習。 監督學習&#xff1a;這是機器學習中最為常見的一類任務&#xff0c;基于已知類…

[TCP] TCP/IP 基礎知識詞典(3)

我想統計一下&#xff0c;TCP/IP 尤其是TCP協議&#xff0c;能搜到的常見的問題&#xff0c;整理起來&#xff0c;關鍵詞添加在目錄中&#xff0c;便于以后查閱。 目前預計整理共3篇&#xff1a; [TCP] TCP/IP 基礎知識問答 &#xff1a;基礎知識 [TCP] TCP/IP 基礎知識問答&…

R語言數據分析(五)

R語言數據分析&#xff08;五&#xff09; 文章目錄 R語言數據分析&#xff08;五&#xff09;前言一、什么是整潔的數據二、延長數據2.1 列名中的數據值2.2 pivot_longer()的處理原理2.3 列名中包含許多變量的情況2.4 列名同時包含數據和變量 三、擴寬數據3.1 pivot_wider的處…

JavaSec 之 SQL 注入簡單了解

文章目錄 JDBC 注入語句拼接(Statement)修復方案 語句拼接(PrepareStatement)修復方案 預編譯 JdbcTemplate修復方案 MyBatisLike 注入Order By 注入In 注入 寒假學了一個月 pwn&#xff0c;真心感覺這玩意太底層學的我生理不適應了&#xff0c;接下來學一段時間 java 安全緩一…

力扣226 翻轉二叉樹 Java版本

文章目錄 題目描述解題思路代碼 題目描述 給你一棵二叉樹的根節點 root &#xff0c;翻轉這棵二叉樹&#xff0c;并返回其根節點。 示例 1&#xff1a; 輸入&#xff1a;root [4,2,7,1,3,6,9] 輸出&#xff1a;[4,7,2,9,6,3,1] 示例 2&#xff1a; 輸入&#xff1a;root…

[云原生] 二進制k8s集群(下)部署高可用master節點

在上一篇文章中&#xff0c;就已經完成了二進制k8s集群部署的搭建&#xff0c;但是單機master并不適用于企業的實際運用&#xff08;因為單機master中&#xff0c;僅僅只有一臺master作為節點服務器的調度指揮&#xff0c;一旦宕機。就意味著整個集群的癱瘓&#xff0c;所以成熟…

代理技術引領出海征程

在數字娛樂的繁榮時代&#xff0c;游戲開發者和發行商們意識到&#xff0c;要在全球市場立足&#xff0c;必須邁向國際化的出海之路。然而&#xff0c;這一旅程面臨著跨越網絡壁壘、適應多元文化和提升全球連接性的巨大挑戰。本文將深入探討代理技術在游戲行業出海過程中的創新…

這才開工沒幾天收到Offer了,簡歷改的好,找工作沒煩惱。

喜報喜報 這才開工沒幾天&#xff0c;就收到了喜報&#xff01; 就像上面截圖中所說的一樣&#xff1a;簡歷改了真的有用。 我也和大家分享一下優化簡歷的技巧&#xff0c;希望對大家有幫助&#xff0c;把握住金三銀四的機會&#xff0c;都能順利上岸&#xff0c;升職加薪&am…

Leetcode日記 2583. 二叉樹中的第 K 大層和

Leetcode日記 2583. 二叉樹中的第 K 大層和 題目&#xff1a;解題思路&#xff1a;代碼實現制作不易&#xff0c;感謝三連&#xff0c;謝謝啦 題目&#xff1a; 給你一棵二叉樹的根節點 root 和一個正整數 k 。 樹中的 層和 是指 同一層 上節點值的總和。 返回樹中第 k 大的層和…

Vue2 基礎面試題

v-show 和 v-if 區別 v-show 通過 CSS display 控制顯示和隱藏v-if 通過判斷組件真實渲染和銷毀&#xff0c;而不是顯示和隱藏頻繁切換顯示狀態用 v-show&#xff0c;否則用 v-if v-if 當 v-if 與 v-for 一起使用時&#xff0c;v-for 具有比 v-if 更高的優先級&#xff0c;意…

PolarDN MISC做題筆記

cat flag 使用01打開flag.png,發現圖片尾部有padding的數據。D0 CF 11 E0 A1 B1 1A E1為office2007以前版本的文件頭。將其另存為flag.doc,打開發現提示需要密碼。&#xff08;可以注意到&#xff1a;D0CF11E0非常類似DOCFILE&#xff09; 使用john的office2john.py 提取hash …

【操作系統】處理機調度算法

實驗3 處理機管理 一、實驗目的 在多道程序或多任務系統中&#xff0c;系統中同時處于就緒態的進程有若干個&#xff0c;即能運行的進程數遠遠大于處理機個數。為了使系統中的各個進程能有條不紊的運行&#xff0c;必須按照某種調度策略&#xff0c;選擇一個進程占用處理機。…

使用puppeteer完成監聽瀏覽器下載文件并保存到自己本地或服務器上完成上傳功能

需求場景 獲取網站點擊的下載pdf&#xff0c;并把pdf重命名再上傳到COS云上面 技術使用 “puppeteer”: “^19.7.2”, “egg”: “^3.15.0”, // 服務期用egg搭的 文件服務使用COS騰訊云 核心思路 獲取瀏覽器下載事件&#xff0c;并把文件保存到本地 const session awai…

Unity3D 框架如何搭建基于純Lua的U框架與開發模式詳解

前言 Unity3D 是一款非常流行的游戲開發引擎&#xff0c;它支持C#、JavaScript和Boo等多種腳本語言。而Lua語言作為一種輕量級的腳本語言&#xff0c;也在游戲開發中得到了廣泛應用。本文將介紹如何在Unity3D框架中搭建基于純Lua的U框架&#xff0c;并詳細講解其開發模式。 對…

MYSQL--存儲過程操作

一&#xff1a;概念&#xff1a; 存儲過程實際上對標了JAVA當中的方法&#xff0c;兩者是相似的&#xff0c;同時需要注意的一點是&#xff0c;MYSQL僅僅在5.0版本之后才出現這種存儲操作的過程&#xff1b; 優點&#xff1a; 1.存儲過程能夠讓運行的速度變得更加迅速&#xff…

SpringBoot指定外部環境配置

nohup java -Xms256m -Xmx512m -Dfile.encodingUTF-8 -jar /usr/local/xxxx.jar --spring.profiles.activeprod > system.log 2>&1 & --spring.profiles.activeprod修改的是多環境配置中內部application.properties里的spring.profiles.active值 -Dspring.config…

ubuntu 查詢流量使用

在Ubuntu系統中&#xff0c;可以使用nethogs命令來查看每個進程的網絡流量使用情況。這個工具可以顯示每個進程的實時網絡流量&#xff0c;從而可以找出使用流量最多的應用。 首先&#xff0c;你需要安裝nethogs。在終端中輸入以下命令&#xff1a; sudo apt install nethogs…

消息隊列MQ 保證消息不丟失(消息可靠性)

文章目錄 概述RabbitMQ 怎么避免消息丟失&#xff08;可靠傳輸&#xff09;RocketMQ 怎么確保消息不丟失Kafka 怎么保證消息不丟失activeMQ 怎么避免消息丟失MQ 宕機了消息是否會丟失線上服務宕機時&#xff0c;如何保證數據100%不丟失嗎&#xff1f;消息隊列消息持久化 概述 …