1 Live TempLates
Android studio 提供了Live TempLates 可以通过简单的一个单词生成一串固定代码,方便了开发。
首先感受一下:
2 常用template
const private static final int $name$ = $value$;
foreach
for ($i$ : $data$) {
$cursor$
}
gone
$VIEW$.setVisibility(android.view.View.GONE);
IntentView:
android.content.Intent view = new Intent();
view.setAction(Intent.ACTION_VIEW);
view.setData(android.net.Uri.parse($url$));
startActivity(view);
newInstance:
public static $fragment$ newInstance($args$) {
$nullChecks$
android.os.Bundle args = new Bundle();
$addArgs$
$fragment$ fragment = new $fragment$();
fragment.setArguments(args);
return fragment;
}
rgS:
$resources$.getString(R.string.$stringId$)
sbc:
///
// $blockName$
///
Sfmt:
String.format("$string$", $params$);
starter:
public static void start(android.content.Context context) {
android.content.Intent starter = new Intent(context, $ACTIVITY$.class);
starter.putExtra($CURSOR$);
context.startActivity(starter);
}
visible:
$VIEW$.setVisibility(View.VISIBLE);
fori:
for(int $INDEX$ = 0; $INDEX$ < $LIMIT$; $INDEX$++) {
$END$
}
itar:
for(int $INDEX$ = 0; $INDEX$ < $ARRAY$.length; $INDEX$++) {
$ELEMENT_TYPE$ $VAR$ = $ARRAY$[$INDEX$];
$END$
}
itco:
for($ITER_TYPE$ $ITER$ = $COLLECTION$.iterator(); $ITER$.hasNext(); ) {
$ELEMENT_TYPE$ $VAR$ =$CAST$ $ITER$.next();
$END$
}
iter:
for ($ELEMENT_TYPE$ $VAR$ : $ITERABLE_TYPE$) {
$END$
}
itit:
while($ITER$.hasNext()){
$TYPE$ $VAR$ = $CAST$ $ITER$.next();
$END$
}
itli:
for (int $INDEX$ = 0; $INDEX$ < $LIST$.size(); $INDEX$++) {
$ELEMENT_TYPE$ $VAR$ = $CAST$ $LIST$.get($INDEX$);
$END$
}
geti:
public static $CLASS_NAME$ getInstance() {
return $VALUE$;
}
ifn:
if ($VAR$ == null) {
$END$
}
inn:
if ($VAR$ != null) {
$END$
}
prsf:
private static final
psfi:
public static final int
psfs:
public static final String
以上来自Android studio。
3 自定义
具体的定义规则可以参考android studio 提供的模板
注意设置了Live TempLates 后使用时没有任何反应可能是你没有设置上下文,也就是模板在哪里起作用,如下图:
如果不设置红色部分,sop是不会生效的。
//可用例子
fdv findViewById
findViewById(R.id.$resId$);
fdvc (cast)findViewById
($cast$) findViewById(R.id.$resId$);
ifelse if else
if ($Cursor$) {
$Content$
} else {
$Content2$
}
sw switch
switch ($key$) {
case $value$:
break;
default:
break;
}
try try catch
try {
$cursor$
} catch (Exception e) {
e.printStackTrace();
}
view_inf View.inflate
$cast$ $var$ = ($cast$) $root$.inflate(this, R.layout.$resId$, null);