91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Android中使用View Binding方法

發布時間:2021-03-20 15:44:54 來源:億速云 閱讀:247 作者:Leah 欄目:移動開發

這篇文章給大家介紹怎么在Android中使用View Binding方法,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

使用

View Binding可按模塊啟用。要在某個模塊中啟用,在該模塊的build.gradle中添加如下配置:

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

用法

當某個模塊啟用View Binding后,系統會為該模塊中包含的每個 XML 布局文件各生成一個綁定類。每個綁定類均包含對根視圖以及具有id 的所有視圖的引用。綁定類的類名是xml的名稱后面加“Binding”。

例如,假設某個布局文件名為 比如activity_main.xml:

<LinearLayout ... >
  <TextView android:id="@+id/tvName" />
  <TextView android:text="no id"/>
  <Button android:id="@+id/btnOpen"/>
</LinearLayout>

那么生成的綁定類類名是ActivityMainBinding。這個類有兩個成員變量tvName和btnOpen,還包含一個getRoot()方法,返回根視圖,此例中返回LinearLayout。

要獲取綁定類的實例,可以通過靜態 inflate() 方法。

private lateinit var binding: ActivityMainBinding

@Override
fun onCreate(savedInstanceState: Bundle) {
 super.onCreate(savedInstanceState)
 binding = ActivityMainBinding.inflate(inflater)
 setContentView(binding.root)
}

現在,綁定類的實例可用于引用任何視圖:

binding.tvName = "name"
binding.btnOpen.setOnClickListener{
 Log.d(TAG,"btnOpen click")
}

區別

  • 與findViewById的區別:空安全和類型安全,不存在因引用了一個錯誤的id而導致的空指針異常或者類型轉換異常。

  • 與databinding的區別:databinding僅處理使用 <layout> 代碼創建的數據綁定布局;View Binding不支持布局變量或布局表達式,因此它不能用于在xml中將布局與數據綁定。

  • 與Android Kotlin Extensions的區別:在使用上,后者簡單粗暴,直接id進行訪問,而View Binding需要創建綁定類的實例;后者有一些不友好的地方,比如相同的id存在于多個xml,容易導錯包,如果包導錯了,會有可能別的View用錯id導致空指針,而View Binding顯然不會有這種情況。

關于怎么在Android中使用View Binding方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

芒康县| 永宁县| 公安县| 麟游县| 都安| 拜城县| 雷山县| 兴宁市| 青冈县| 琼中| 都昌县| 多伦县| 钦州市| 从化市| 思茅市| 庆元县| 江门市| 吉首市| 车致| 松江区| 乌拉特后旗| 梅河口市| 封开县| 洪湖市| 临颍县| 佳木斯市| 旌德县| 扬中市| 宝应县| 油尖旺区| 吐鲁番市| 拉孜县| 汨罗市| 蛟河市| 沂水县| 涞水县| 罗平县| 南安市| 塘沽区| 腾冲县| 凌源市|