IntelliJ Live Templates错误与completeSmart()函数

时间:2014-07-03 16:07:56

标签: android templates intellij-idea android-studio live-templates

我正在尝试在Android Studio中创建一个实时模板,这将有助于加快findViewById(...)的创建

部分原因是自学,部分是对创建此类实时模板感到好奇。

我希望能够输入以下内容......

Button find +(输入)

......那应该创造这样的东西......

Button btnAdd = (Button) findViewById(R.id.btnAddition);


我目前的实施有问题......

enter image description here enter image description here

......这些问题源于completeSmart()的使用。无论何时使用completeSmart(),模板都会忽略该调用后的所有内容并结束编辑。

例如,如果我将CAST命名变量向上移动一个广告位(ID以上),那么广告会自动填写并且不会让我可以轻松编辑ID了。与下图相同,但没有btnAddition。只需...findViewById(R.id.);

使用我当前的设置,我在底部有CAST ,因此我可以轻松编辑所有命名变量;但是,当我完成时,使用completeSmart()不会让模板结束(将光标放在$END$标记 - 下图中的第29行)。

相反,它会将光标放在演员之后,就像这样...... enter image description here

......应该放在下一行的开头。这个模板确实添加了一个新行,但光标最后没有放在那里。的为什么吗


所以我想要这个...

1)因为我已经在Button,我想要投射Button。我不应该两次打字!

1 个答案:

答案 0 :(得分:0)

你应该使用方法typeOfVariable()

你可以这样改变:

foo