Android Studio代码块打标

Posted by Puke on 2017-03-21
Android Studio代码块打标,让我们迅速定位到代码逻辑块。

背景

当我们开发中写的某些类的代码量相对比较庞大时,就会遇到维护这个类变得困难的问题,抛开对于该类的设计层面的因素,只从代码量的角度来看这个问题。基于IntelliJ的IDE给我们提供了一种能够给我们的代码块进行归纳的标签(以下称为代码块打标),如下

1
2
3
// <editor-fold defaultstate="collapsed" desc="[A]">
[B]
// </editor-fold>
  • [A] 对应打标的描述语言
  • [B] 对应待打标代码块

根据上述规则我们来对MainActivity进行打标操作,代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/**
* @author zijiao
* @version 17/3/21
*/
public class MainActivity extends Activity {
// <editor-fold defaultstate="collapsed" desc="成员变量">
private Button button;
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="onCreate逻辑">
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initListener();
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="findView逻辑">
private void initView() {
button = (Button) findViewById(R.id.button);
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="点击事件处理逻辑">
private void initListener() {
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Click button", Toast.LENGTH_SHORT).show();
}
});
}
// </editor-fold>
}

可以看到我们将各个代码块按照逻辑进行分类并添加对应的描述标签,当我们下次再打开该类时,查看或修改某部分代码就会一目了然(当代码庞大时,其优点将会尤为明显),参见下图

整合LiveTemplate

可以看到代码块打标是很方便,但是有一点不好,就是当我们需要给某一个代码块打标时我们总是要在代码块之前添加

1
// <editor-fold defaultstate="collapsed" desc="[A]">

然后在代码块之后添加

1
// </editor-fold>

这个步骤很繁琐,但好消息是我们可以结合AS提供给我们的LiveTempalte,将这个过程封装成一个打标模板,来看看具体操作

  1. 打开Android Studio,进入PreferencesEditorLive Templates ,新建一个Live Template

  2. Abbreviation处填写Mark Code BlockTemplate text处填写

    1
    2
    3
    // <editor-fold defaultstate="collapsed" desc="$description$">
    $SELECTION$
    // </editor-fold>
  3. 点击Define,勾选Java复选框

  4. 点击Apply

这个时候你的界面应该是这样,可以核对下

到这里,打标模板已经完成了,你可以随便找一个类进行测试,选中一个代码块,按下快捷键Command + Option + J(Windows系统可以在PreferencesKeymap 中搜索Surround with Live Template...对应的快捷键)来选择Mark Code Block模板,此时我们就可以快速进行代码块打标操作了,如下图