首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Android为newInstance片段创建kotlin实时模板

如何使用Android为newInstance片段创建kotlin实时模板
EN

Stack Overflow用户
提问于 2018-07-23 07:31:35
回答 2查看 1.8K关注 0票数 6

我正在寻找一种方法来创建一个新的Kotlin活代码模板,以便每当我输入newIns..。它和点击选项卡,它将能够打印以下作为一个活模板的选择:

代码语言:javascript
运行
复制
companion object {
    fun newInstance(b: Bundle): DetailsFragment {
        val frag = DetailsFragment()
        frag.arguments = b
        return frag
    }
}

在Java中,它也是这样做的,并且已经有了一个"newInstance“的缩写,并且在Android中存在一个活动模板。我也想给Kotlin做同样的事。让我给你看张照片:

注意,Java已经有了newInstance模板。我想把这个送给Kotlin。以下是我到目前为止所拥有的:

到目前为止,我拥有的模板代码如下所示:

代码语言:javascript
运行
复制
companion object { 
    fun newInstance($args$:Bundle):$fragment$ {
        $nullChecks$
        android.os.Bundle args = Bundle();
        $addArgs$
        $fragment$ fragment = $fragment$();
        fragment.setArguments(args);
        return fragment;
    }
}

但是,当我退出设置,在Kotlin中键入缩写的前几个单词,点击标签或mac上的ctrl +空格键,什么都不会发生。我想我的语法不对,我不确定。有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-23 11:29:43

步骤1:

转到Android中的Live部分。

For Windows:

文件>设置>编辑器>活动模板

For Mac:

Android > Preferences >编辑器> Live Template

步骤2:

选择Kotlin模板组。然后点击弹出窗口右上角的+。选择动态模板

步骤3:

现在您可以添加您的活动模板。检查弹出窗口的底部。

添加abbreviation: newInstance

添加description:创建带有参数的片段实例

添加模板文本:

代码语言:javascript
运行
复制
companion object {
    fun newInstance(args: Bundle): $fragment$ {
        val fragment = $fragment$()
        fragment.arguments = args
        return fragment
    }
}

添加适用的上下文。点击Define。从列表中选择Kotlin。

根据样式选择重新格式化

步骤4:

点击编辑变量下面的描述。

现在点击表达式以获取变量名fragment。按下箭头。您可以看到表达式的列表。从那里选择kotlinClassName()

点击编辑模板变量的OK

现在点击应用OK的Live。

在用Kotlin编写的片段中检查newInstance

票数 8
EN

Stack Overflow用户

发布于 2021-12-24 02:37:48

一个稍微简化的版本(和更多的习语)将是:

代码语言:javascript
运行
复制
fun newInstance($args$) : $fragment$ = 
    $fragment$().apply {
        arguments = Bundle().apply {
            $addArgs$
        }
    }

代码语言:javascript
运行
复制
fun newInstance(args: Bundle) : $fragment$ = 
    $fragment$().apply {
        arguments = args
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51473637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档