[英]Intellij Idea Live Template to create field and method at same time
当我创建使用该字段的方法时,如何自动创建字段变量。 我已经创建了这样的模板:
void $METHOD_NAME$() {
$FIELD_NAME$ = true;
}
当我在方法中键入字段名称(例如mState
)时,将创建字段为:
private boolean mState = false;
希望有人帮忙。 对不起这是我的错。
给定模板的屏幕快照,您还可以使用以下实时模板创建一个字段:
private boolean $param$ = false;
@Override
public void onBackPressed() {
if ($param$) super.onBackPressed();
android.widget.Toast.makeText(this, "$message$",
android.widget.Toast.LENGTH_SHORT).show();
$param$ = true;
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
$param$ = false;
}
}, 100);
}
其中$ param $和$ message $是常规变量,没有任何特殊之处。
但是,就像我在对您的问题的评论中所说的那样,我建议将其分成几个较小的模板。 考虑将其拆分为:field + method仅带有:
private boolean $param$ = false;
@Override
public void onBackPressed() {
if ($param$) super.onBackPressed();
$param$ = true;
}
然后为消息创建一个模板:
android.widget.Toast.makeText(this, "$message$", android.widget.Toast.LENGTH_SHORT).show();
最后但并非最不重要的一点是,为postDelayed创建一个模板:
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
$END$
}
}, $delay$);
注意: $delay$
作为奖励,您甚至可以给它一个默认值或创建一个预定义值列表,以方便使用。
注意2:代替$param$ = false;
我已将其替换为$END$
。 选择延迟后,这会将光标定位在此处。 现在,您可以在此处手动键入mState = false,或此时需要在上下文中输入的任何代码。 这使模板更加灵活且易于使用。
PS。 我想您只想在值是false时(在第一次调用时)调用super.onBackPressed()
)。 在这种情况下,请使用if (!$param$)
。
//更新:
为了将新添加的字段与其他字段组合在一起,而不是在类中其他方法之间的中间位置,请通过菜单使用Code -> rearrange code
。 要对此进行自定义,请在以下位置检查您的排列设置: settings -> code style -> <language> -> arrangement
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.