Android 活动模板在Kotlin中不起作用

Android 活动模板在Kotlin中不起作用,android,kotlin,live-templates,Android,Kotlin,Live Templates,希望您已经使用过Android默认提供的Live模板 比如: 它在KOTLIN中不可用? 是否在Android Studio 3.0金丝雀版本中不可用?但未在Android Studio的Kotlin Live templates部分中添加日志模板 设置->编辑器->实时模板->Kotlin用于Kotlin模板 设置->编辑器->实时模板->AndroidLog用于AndroidLog模板 因此,在Kotlin代码中无法获得相同的AndroidLog模板 所以现在的问题是,如何使用Kotl

希望您已经使用过Android默认提供的Live模板

比如:

它在KOTLIN中不可用?
是否在Android Studio 3.0金丝雀版本中不可用?

但未在Android Studio的Kotlin Live templates部分中添加日志模板

设置->编辑器->实时模板->Kotlin用于Kotlin模板

设置->编辑器->实时模板->AndroidLog用于AndroidLog模板

因此,在Kotlin代码中无法获得相同的AndroidLog模板

所以现在的问题是,如何使用Kotlin中的模板使用相同的日志函数

Ans:您可以在Android studio的Kotlin templates部分添加相同的日志模板(AndroidLog模板),如下例所示

然后它将在您的Kotlin代码中可用


我希望通过这种方式,您可以利用Kotlin中的日志函数模板

以下是分步指南:

首先,将AndroidLog模板复制并粘贴到Kotlin(只需选择它们并使用CMD+C、CMD+V(或Ctrl+C、Ctrl+V)
其次,您必须手动调整:

  • logd(loge、logv和其他) 选择logd项并按“编辑变量”
  • 将表达式更改为:kotlinMethodName()

    另外,从模板末尾删除
    ,因为Kotlin中不需要它

    现在,您的方法名称将正确显示

  • logt
  • 这个有点棘手。
    解决方案1:TAG=类名。

    模板文本:

    private val TAG = "$className$"
    
    private const val TAG = "$className$"
    
    编辑变量->表达式:

    groovyScript("_1.take(Math.min(23, _1.length()));", kotlinClassName())
    
    groovyScript("_1.take(Math.min(23, _1.length()));", fileNameWithoutExtension())
    
    解决方案2:TAG=文件名(可在Companion中使用)

    模板文本:

    private val TAG = "$className$"
    
    private const val TAG = "$className$"
    
    或:

    编辑变量->表达式:

    groovyScript("_1.take(Math.min(23, _1.length()));", kotlinClassName())
    
    groovyScript("_1.take(Math.min(23, _1.length()));", fileNameWithoutExtension())
    

    您不需要复制粘贴其他答案中提到的任何内容。在Android Studio的Live Templates部分中找到“适用于*”文本-单击“更改”按钮可显示所有作用域的列表。选择Kotlin(或其子节点之一)注意,一些来自Java的语句在Kotlin中不起作用(比如使用static关键字的语句)——最好为这些语句创建一个新的模板,而不是编辑现有的模板

    是包含Android Kotlin所有模板的存储库

    您只需下载存储库,复制目录并粘贴到Android Studio配置文件夹中

    Android Studio的配置文件夹位于

    Windows: C:\Users\%userName%\.AndroidStudio<version>\config\templates
    Linux: ~AndroidStudio<version>/config/templates
    macOS: ~/Library/Preferences/AndroidStudio<version>/templates
    
    Windows:C:\Users\%userName%\.AndroidStudio\config\templates
    Linux:~AndroidStudio/config/templates
    macOS:~/Library/Preferences/AndroidStudio/templates
    
    这是@pRaNaY@Leo和@Jaguar给出的所有好答案的组合,加上无标签和可变用途的奖金(无需键入“${}”)

    模板文本:android.util.Log.d(“$className$”,“$methodName$$$$$contents$”)

    适用于Kotlin:顶级、语句、类、表达式

    变量表达式可以在下拉菜单中找到


    对于logt,上述两个答案有效,但还需要将“定义”添加为“类”


    感谢@Leo分享一个新的解决方案。正如你所说,它简单多了。在撰写此评论时接受的答案并不是重用模板的最佳方式。似乎Android Studio的Kotlin“开箱即用”支持仍在开发中(@Leo Droidcoder,谢谢!)只需下载.jar并通过“文件>导入设置”将其导入Android Studio即可。出色且清晰的解释。然而,无论我在kotlin下添加了什么模板,Android Studio都不会像Java那样为我工作。事实上,每当我开始编写
    log
    时,它都会建议使用对数函数哦,没有这些模板。我正在运行Android Studio 3.5。谢谢你的帮助!我尝试了不同的名称,没有任何建议。我还尝试了重新启动为。