日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

kotlin学习笔记——Kotlin Android Extensions

發布時間:2024/4/15 Android 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kotlin学习笔记——Kotlin Android Extensions 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Kotlin Android Extensions是另外一個團隊開發的,它是一個插件所以不需要依賴別的庫。當前僅僅包含view的綁定,會自動創建很多屬性讓我們直接訪問xml中的view,我們就不需要明確的去布局中找這些view了。

自動創建的屬性的名字來源于view的id,所以我們取id的時候要十分小心。這些屬性類型也是從xml中獲取的,所以不必再做類型轉換。

Kotlin Android Extensions具有緩存功能,避免每次使用屬性都重新獲取一次。但是緩存功能目前只在activity和fragment中有效,如果在擴展函數中則跳過緩存。

使用Kotlin Android Extensions

一、首先加入插件的依賴,在module中的build.gradle中(注意不是root下的):

buildscript {repositories {jcenter()}dependencies {classpath 'org.jetbrains.kotlin:kotlin-android-extensions:1.1.2-4'} }

二、import進代碼中:

1、activity和fragment的Android Extensions

import kotlinx.android.synthetic.activity_main.*

以kotlinx.android.synthetic開頭,activity_main是layout的名字(注意:新版本前面要加上main,既.main.activity_main.)。

當調用了setContentView之后就可以直接使用自動創建的view的屬性了。注意:如果在layout中使用include,那么必須將include的layout也import進來。

2、view的Android Extensions

有很多代碼需要訪問xml中的view,比如自定義view或者adapter。綁定一個view到另外一個view,這時需要import

如:

import kotlinx.android.synthetic.main.item_view.view.*class RecyclerAdaper(var items: List<String>, var listener: (String) -> Unit) : RecyclerView.Adapter<RecyclerAdaper.ViewHolder>(){override fun onBindViewHolder(holder: ViewHolder, position: Int) {holder.bind(items[position])}override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {return ViewHolder(View.inflate(parent.context, R.layout.item_view, null))}override fun getItemCount(): Int {return items.size}class ViewHolder(view: View) : RecyclerView.ViewHolder(view){fun bind(str: String){itemView.nametext.text = str}}}

注意import進來的不是layout了,而是layout.view,這樣就可以直接使用這個view的子view了。

三、直接在代碼中使用

如:

activity_main.layout

<?xml version="1.0" encoding="utf-8"?> <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><android.support.v7.widget.RecyclerViewandroid:id="@+id/recyclerview"android:layout_width="match_parent"android:layout_height="match_parent"></android.support.v7.widget.RecyclerView></RelativeLayout>

MainActivity.java

import kotlinx.android.synthetic.main.activity_main.*class MainActivity : Activity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)//var recyclerview = findViewById(R.id.recyclerview) as RecyclerView//var recyclerview: RecyclerView = find(R.id.recyclerview)recyclerview.layoutManager = LinearLayoutManager(this)

可以看到直接使用recyclerview這個變量,不必在使用find代碼,節省了大量的代碼

總結

以上是生活随笔為你收集整理的kotlin学习笔记——Kotlin Android Extensions的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。