android studio 中使用kotlin語言 直接操作布局id

android studio 中使用kotlin語言 直接操作布局id
需要在 build.gradle 文件 引入

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

(會自動生成,可忽略)然后在 Activity 文件中 引入 對應的 layout 文件 如:activity_main.xml

import kotlinx.android.synthetic.main.activity_main.*

然而,運行是會提示kotlin-android-extensions廢棄

Android StudioThe ‘kotlin-android-extensions‘ Gradle plugin is deprecated.

所以我們采用viewbinding來直接操作布局id
?
一、ViewBinding開啟
在app下build.grade中加入以下代碼

AS 3.6.x

android {...viewBinding{enabled = true}
}

AS 4.0.x

android {...buildFeatures{viewBinding= true}
}

開啟之后,創建xml布局文件時,編譯器會自動化生成對應的xxxBinding文件。例如:activity_main.xml 對應生成ActivityMainBinding,下面進行代碼演示

一、Activity中使用ViewBinding
1、創建MainActivity、activity_main.xml文件


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><ImageViewandroid:id="@+id/iv_test"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@color/transparent" /><FrameLayoutandroid:id="@+id/fl_contain"android:layout_width="match_parent"android:layout_height="match_parent" /></RelativeLayout>

2、Java中把自動生成的ActivityMainBinding進行填充綁定后再 setContentView(rootView);

        //關鍵代碼:binding xml布局mBinding = ActivityMainBinding.inflate(getLayoutInflater());View rootView = mBinding.getRoot();setContentView(rootView);

3、綁定之后就可以直接通過mBinding.xxx(xxx==id)使用控件,完整代碼如下:

public class MainActivity extends AppCompatActivity {private ActivityMainBinding mBinding;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);//關鍵代碼:binding xml布局mBinding = ActivityMainBinding.inflate(getLayoutInflater());View rootView = mBinding.getRoot();setContentView(rootView);//使用介紹mBinding.ivTest.setBackground(ContextCompat.getDrawable(this, R.mipmap.ic_launcher));mBinding.flContain.setOnClickListener(v -> {FragmentManager fragmentManager = getSupportFragmentManager();FragmentTransaction transaction = fragmentManager.beginTransaction();transaction.add(R.id.fl_contain, new BindViewFragment());transaction.commit();});}
}

?

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

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

相關文章

MacOs 圍爐夜話

文章目錄 一、安裝 Mac 一、安裝 Mac macOS是一套由蘋果開發的運行于Macintosh系列電腦上的操作系統。macOS是首個在商用領域成功的圖形用戶界面操作系統。 VM虛擬機怎么安裝mac os&#xff1f;&#xff08;全教程&#xff09; 虛擬機&#xff1a;VMware Workstation 17 pro W…

新書推薦:《分布式商業生態戰略:未來數字商業新邏輯與企業數字化轉型新策略》

近兩年&#xff0c;商業經濟環境的不確定性越來越明顯&#xff0c;市場經濟受到疫情、技術、政策等多方因素影響越來越難以預測&#xff0c;黑天鵝事件時有發生。在國內外經濟方面&#xff0c;國際的地緣政治對商業經濟產生著重大的影響&#xff0c;例如供應鏈中斷&#xff0c;…

Shopify配置項過多如何在代碼層面簡化輸出內容

在處理 Shopify 的配置項過多的情況下&#xff0c;可以通過在代碼層面簡化輸出內容來提高效率和可維護性。以下是一些方法&#xff1a; 1. 使用循環和條件語句 使用循環和條件語句來動態生成和輸出內容。通過遍歷配置項的列表或對象&#xff0c;可以根據條件決定是否輸出相應的…

Backend - Django SimpleUI(美化 Django Admin )

目錄 一、作用 二、安裝 & 配置 &#xff08;一&#xff09;安裝依賴 &#xff08;二&#xff09;配置 &#xff08;三&#xff09;運行 三、基礎設定 &#xff08;一&#xff09;創建用戶 &#xff08;二&#xff09;設置標題 &#xff08;三&#xff09;設置登錄…

代理模式筆記

代理模式 代理模式代理模式的應用場景先理解什么是代理&#xff0c;再理解動靜態舉例舉例所用代碼 動靜態的區別靜態代理動態代理 動態代理的優點代理模式與裝飾者模式的區別 代理模式 代理模式在設計模式中是7種結構型模式中的一種&#xff0c;而代理模式有分動態代理&#x…

rabbitmq知識梳理

一.WorkQueues模型 Work queues&#xff0c;任務模型。簡單來說就是讓多個消費者綁定到一個隊列&#xff0c;共同消費隊列中的消息。 當消息處理比較耗時的時候&#xff0c;可能生產消息的速度會遠遠大于消息的消費速度。長此以往&#xff0c;消息就會堆積越來越多&#xff0c…

四、矩陣的分類

目錄 1、相等矩陣 2、同形矩陣 3、方陣&#xff1a; 4、負矩陣、上三角矩陣、下三角矩陣&#xff1a; 5、對角矩陣&#xff1a;是方陣 ?編輯7、單位矩陣&#xff1a;常常用 E或I 來表示。它是一個方陣 8、零矩陣&#xff1a; 9、對稱矩陣&#xff1a;方陣 1、相等矩陣 …

openEuler安裝MySQL客戶端、openEuler安裝MySQL-client、openEuler部署MySQL-client

MySQL客戶端下載鏈接&#xff1a;https://downloads.mysql.com/archives/community/ mysql-community-client-5.7.30-1.el7.x86_64.rpm mysql-community-common-5.7.30-1.el7.x86_64.rpm mysql-community-libs-5.7.30-1.el7.x86_64.rpm 3個必選 8.0.22以上的版本是4個&…

HDFS中常用的Shell命令 全面且詳細

HDFS中常用的Shell命令目錄 一、ls命令 二、mkdir 命令 三、put命令 四、get命令 五、mv命令 六、rm命令 七、cp命令 八、cat命令 前言 安裝好hadoop環境之后&#xff0c;可以執行hdfs相關的shell命令對hdfs文件系統進行操作&#xff0c;比如文件的創建、刪除、修改文…

【FPGA】VHDL:小型出勤系統設計

附源代碼&#xff0c;一定能實現&#xff01; 目錄 EDA設計練習題&#xff1a; 實驗要求如下&#xff1a; 思路分析&#xff1a; 代碼 99進制計數器 碼轉換 頂層文件 特別注意 測試 編譯通過 結果展示 RTL視圖 技術映射視圖 軟件&#xff1a;Quartus II 13.0 (64…

BERT學習筆記

論文&#xff1a;《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》&#xff0c;2019 代碼&#xff1a;[tensorflow]&#xff0c;[pytorch] 來源&#xff1a;李沐精度BERT 0、摘要 與之前模型的區別&#xff1a; GPT考慮的是一個單向…

公司中常用的系統有哪些--制造業篇

摘要 本系列博客主要介紹不同行業中使用的常見系統&#xff0c;本文介紹在制造業或是智能制造方向的常見系統。 智能制造發展史 1973年美國約瑟夫哈林頓&#xff08;Joseph Harrington&#xff09;博士在《Computer Integrated Manufacturing》一書中首次提出 CIM&#xff08…

C# 本地方法和lambda實現

概念&#xff1a; 本地函數是一種嵌套在另一成員中的類型的方法。 僅能從其包含成員中調用它們。 下面是本地方法最簡單的一個demo: public static int Show(){int c NewMethod(); return c;static int NewMethod(){#region 測試int a 3;int b 9;int c a b;#endregionre…

python opencv實現車牌識別

目錄 一:實現步驟: 二:實現車牌檢測 一:實現步驟: 使用Python和OpenCV實現車牌識別的步驟大致可以分為以下兩部分: 車牌檢測: 讀取需要進行車牌識別的圖片。 對圖像進行灰度化處理,可能還包括高斯模糊和灰度拉伸。 進行開運算,消除圖像中的噪聲。 將灰度拉伸后的圖…

培養納稅籌劃思維方式,企業稅務籌劃實務操作

一、教程描述 本套稅務籌劃教程&#xff0c;大小447.87M&#xff0c;共有6個文件。 二、教程目錄 前言.mp4 培養納稅籌劃思維方式.mp4 增值稅的稅務籌劃.mp4 企業所得稅的稅務籌劃.mp4 個人所得稅的稅務籌劃.mp4 企業稅務籌劃實務操作&#xff08;課件&#xff09;.pdf…

MDST150-16-ASEMI三相可控整流模塊MDST150-16

編輯&#xff1a;ll MDST150-16-ASEMI三相可控整流模塊MDST150-16 型號&#xff1a;MDST150-16 品牌&#xff1a;ASEMI 正向電流&#xff08;Id&#xff09;&#xff1a;150A 反向耐壓&#xff08;VRRM&#xff09;&#xff1a;1600V 正向浪涌電流&#xff1a;1200A 正…

大數據揭秘:Hadoop短視頻流量分析實戰

??計算機編程指導師 ??個人介紹&#xff1a;自己非常喜歡研究技術問題&#xff01;專業做Java、Python、微信小程序、安卓、大數據、爬蟲、Golang、大屏等實戰項目。 ??實戰項目&#xff1a;有源碼或者技術上的問題歡迎在評論區一起討論交流&#xff01; ?? Java實戰 |…

PyTorch概述(一)---圖像變換和增強

TorchVision torchvision 包由流行的數據集、模型架構以及用于計算機視覺的通用圖片轉換工具組成 TorchVision 包構成 圖像變換和增強TVTensors模型和預訓練的權重數據集工具操作圖像和視頻的編/解碼用于模型檢測的特征提取 圖像變換和增強 torchvision支持通用的計算機視…

基于springboot+vue的車輛管理系統(前后端分離)

博主主頁&#xff1a;貓頭鷹源碼 博主簡介&#xff1a;Java領域優質創作者、CSDN博客專家、阿里云專家博主、公司架構師、全網粉絲5萬、專注Java技術領域和畢業設計項目實戰&#xff0c;歡迎高校老師\講師\同行交流合作 ?主要內容&#xff1a;畢業設計(Javaweb項目|小程序|Pyt…

獲取淘寶商品詳情API、商品主圖、圖片搜索api

獲取淘寶詳情API的方式有以下幾種&#xff1a; 使用淘寶開放平臺提供的接口&#xff1a;淘寶開放平臺提供了多個API接口&#xff0c;讓開發者可以通過接口獲取商品詳情信息。你可以到淘寶開放平臺官網申請開發者賬號&#xff0c;并查看相關接口文檔&#xff0c;了解如何使用接…