簡體   English   中英

在 android studio 模板中獲取包名

[英]Get package name in android studio templates

我正在創建一個代碼模板來加快我的工作。 模板工作正常,如下所示

class SimpleActivity : AppActivity<ActivitySimpleBinding, SimpleActivityViewModel>() {
    override fun layoutID(): Int = R.layout.activity_simple
    override fun setViewModel(): SimpleActivityViewModel {
        val mViewModel: SimpleActivityViewModel by viewModels()
        return mViewModel
    }
}

唯一的問題是在使用我的模板時編寫正確的App packageName 我能擺脫它嗎。 是否有任何默認方式在模板中選擇它

<?xml version="1.0"?>
<template
    format="5"
    revision="3"
    name="MVVM Activity"
    description="Creates a Activity with a ViewModel."
    minApi="7"
    minBuildApi="21">

    <category value="Activity" />
    <formfactor value="Mobile" />

    <parameter
        id="activityClass"
        name="Activity Name"
        type="string"
        constraints="class|nonempty|unique"
        default="BlankActivity"
        help="The name of the fragment class to create" />

    <parameter
        id="layoutName"
        name="Activity Layout Name"
        type="string"
        constraints="layout|nonempty|unique"
        default="blank_activity"
        suggest="${classToResource(activityClass)}_activity"
        help="The name of the layout to create" />

    <parameter
        id="viewModelName"
        name="ViewModel Name"
        type="string"
        constraints="class|nonempty|unique"
        default="BlankViewModel"
        suggest="${underscoreToCamelCase(classToResource(activityClass))}ViewModel"
        help="The name of the ViewModel class to create" />

    <parameter
        id="appPackageName"
        name="app Package name"
        type="string"
        constraints="package"
        default="how.to.get.default.package.here"
        help="app package name" />

    <thumbs>
        <thumb>template_blank_fragment.png</thumb>
    </thumbs>

    <globals file="globals.xml.ftl" />
    <execute file="recipe.xml.ftl" />

</template>

請參閱下面的appPackageName 有沒有辦法在此處設置默認包名或在AppActivity.kt.ftl 中獲取 appPackage 名稱的方法

<parameter
        id="appPackageName"
        name="app Package name"
        type="string"
        constraints="package"
        default="how.to.get.default.package.here"
        help="app package name" />

我想刪除上述參數或在此處自動設置默認項目包。

有沒有辦法實現它。

您無需在此處添加包名稱字段即可獲取應用程序基礎包名稱。 您可以在您的應用程序中使用 applicationPackage

package ${packageName}

import android.os.Bundle
import android.view.View
import androidx.fragment.app.viewModels
import ${applicationPackage}.R
import ${applicationPackage}.databinding.${fragmentClass}Binding
import com.chi.commonbase.base.BaseFragment



class ${fragmentClass} : BaseFragment<${fragmentClass}Binding,${viewModelName}>() {

    override fun layoutID(): Int = R.layout.${layoutName}
    override val mViewModel: ${viewModelName} by viewModels()

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        mBinding.mViewModel = mViewModel
    }

}

暫無
暫無

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

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