簡體   English   中英

如何使用 Android Studio 為 newInstance Fragments 創建 kotlin 實時模板

[英]How to create a kotlin live template for newInstance Fragments using Android studio

我正在尋找一種方法來創建一個新的 Kotlin 實時代碼模板,這樣每當我輸入 newIns.... 它並點擊選項卡時,它將能夠打印以下內容作為實時模板選擇:

companion object {
    fun newInstance(b: Bundle): DetailsFragment {
        val frag = DetailsFragment()
        frag.arguments = b
        return frag
    }
}

在 Java 中,它是以相同的方式完成的,並且已經有一個“newInstance”的縮寫,並且在 Android Studio 中存在一個實時模板。 我想對 Kotlin 做同樣的事情。 讓我給你看一張照片:

在此處輸入圖片說明

請注意,Java Android 已經有newInstance模板。 我想要這個用於 Kotlin。 這是我到目前為止所擁有的:

在此處輸入圖片說明

到目前為止,我的模板代碼如下所示:

companion object { 
    fun newInstance($args$:Bundle):$fragment$ {
        $nullChecks$
        android.os.Bundle args = Bundle();
        $addArgs$
        $fragment$ fragment = $fragment$();
        fragment.setArguments(args);
        return fragment;
    }
}

但是當我退出設置並在 Kotlin 中輸入縮寫的前幾個詞並在 Mac 上點擊 Tab 或 ctrl + 空格鍵時沒有任何反應。 我想我的語法有誤,我不確定。 任何人的建議?

步驟1:

轉到Android Studio中的“實時模板”部分。

對於Windows:

文件 > 設置 > 編輯器 > 實時模板

對於Mac:

Android Studio > 首選項 > 編輯器 > 實時模板

第2步:

選擇Kotlin模板組。 然后點擊彈出窗口右上角的+ present。 選擇實時模板

第3步:

現在您可以添加實時模板了。 檢查彈出窗口的底部。

添加縮寫: newInstance

添加描述:使用參數創建片段的實例

添加模板文字:

companion object {
    fun newInstance(args: Bundle): $fragment$ {
        val fragment = $fragment$()
        fragment.arguments = args
        return fragment
    }
}

添加適用的上下文 點擊“ Define 從列表中選擇Kotlin。

根據樣式選擇重新格式化

第4步:

點擊描述下方的編輯變量

現在點擊Expression來獲取變量名稱fragment 點擊向下箭頭。 您可以看到表達式列表。 從那里選擇kotlinClassName()

點擊編輯模板變量的確定

現在點擊“實施模板”的“ 應用”和“ 確定 ”。

檢查在Kotlin中編寫的片段中的newInstance類型。

稍微簡化的版本(更慣用)是:

fun newInstance($args$) : $fragment$ = 
    $fragment$().apply {
        arguments = Bundle().apply {
            $addArgs$
        }
    }

或者

fun newInstance(args: Bundle) : $fragment$ = 
    $fragment$().apply {
        arguments = args
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM