目录
一.摘要
熟悉Eclipse操作的编程师们都知道其中一个功能叫“自定义模块”,那么Android Studio的自定义模板是怎么样的呢?如何快速提升Android Studio的开发效率呢?Live Templates功能是你必须要了解的。
关键字:Android Studio,快捷键,自定义模块,开发效率
二.什么是Live Templates?
Android Studio的Live Templates类似于Eclipse的自定义模块,在当前光标所在位置快速插入预先定义代码块,提升开发效率。Live Templates默认提供:Android,AndroidComments,AndroidLog,AndroidParcelable,AndroidXML等十四种模块功能,查看位置“Settings——>Editor——>Live Templates”,下面针对记录各种代码块使用情况总结。
Android
const,使用条件:在Activity类方法体外,输入“const”后回车,快速生成代码块:
- private static final int = 294;
fbc,使用条件:在Activity类方法体内,输入“fbc”后回车,快速生成代码块:
- () findViewById(R.id.);
foreach,使用条件:在Activity类方法体内,输入“foreach”后回车,快速生成代码块:
- for (:
- ) {
- }
gone,使用条件:在Activity类方法体内,输入“gone”后回车,快速生成代码块:
- .setVisibility(View.GONE);
IntentView,使用条件:在Activity类方法体内,输入“IntentView”后回车,快速生成代码块:
- Intent view = new Intent();
- view.setAction(Intent.ACTION_VIEW);
- view.setData(Uri.parse());
- startActivity(view);
key,使用条件:在Activity类方法体外,输入“key”后回车,快速生成代码块:
- private static final String KEY_ = "";
newInstance,使用条件:在Activity类方法体外,输入“newInstance”后回车,快速生成代码块:
- public static AudioMainActivity newInstance() {
- Bundle args = new Bundle();
- AudioMainActivity fragment = new AudioMainActivity();
- fragment.setArguments(args);
- return fragment;
- }
newInstance,使用条件:在Activity类方法体外,输入“noInstance”后回车,快速生成代码块:
- private AudioMainActivity() {
- //no instance
- }
rgS,使用条件:在Activity类方法体内,输入“rgS”后回车,快速生成代码块:
- .getString(R.string.)
rouiT,使用条件:在Activity类方法体内,输入“rouiT”后回车,快速生成代码块:
- getActivity().runOnUiThread(new Runnable() {
- @Override
- public void run() {
- }
- });
sbc,使用条件:在Activity类方法体外,输入“sbc”后回车,快速生成:
- ///////////////////////////////////////////////////////////////////////////
- //
- ///////////////////////////////////////////////////////////////////////////
Sfmt,使用条件:在Activity类方法体内,输入“Sfmt”后回车,快速生成代码块:
- String.format("", );
starter,使用条件:在Activity类方法体外,输入“starter”后回车,快速生成代码块:
- public static void start(Context context) {
- Intent starter = new Intent(context, AudioMainActivity.class);
- starter.putExtra();
- context.startActivity(starter);
- }
Toast,使用条件:在Activity类方法体内,输入“Toast”后回车,快速生成代码块:
- Toast.makeText(AudioMainActivity.this, "", Toast.LENGTH_SHORT).show();
ViewConstructors,使用条件:在View类方法体外,输入“ViewConstructors”后回车,快速生成代码块:
- public AudioMainActivity(Context context) {
- this(context, null);
- }
- public AudioMainActivity(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- }
- public AudioMainActivity(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- }
visible,使用条件:在Activity类方法体内,输入“visible”后Alt+Enter,快速生成代码块:
- .setVisibility(View.VISIBLE);
wrapIt,使用条件:在build.gradle文件中,输入“wrapIt”,然后Alt+Enter,快速生成代码块:
- task wrapper(type: Wrapper) {
- gradleVersion = ""
- }
AndroidComments
ccode,使用条件:在Activity类方法体外,先输入sbc,在出现的注释块中输入“ccode”,然后Alt+Enter,快速生成代码块:
- ///////////////////////////////////////////////////////////////////////////
- // <code></code>
- ///////////////////////////////////////////////////////////////////////////
cfalse,使用条件:在Activity类方法体外,先输入sbc,在出现的注释块中输入“cfalse”,然后Alt+Enter,快速生成代码块:
- ///////////////////////////////////////////////////////////////////////////
- // <code>false</code>
- ///////////////////////////////////////////////////////////////////////////
clink,使用条件:在Activity类方法体外,先输入sbc,在出现的注释块中输入“clink”,然后Alt+Enter,快速生成代码块:
- ///////////////////////////////////////////////////////////////////////////
- // {@link }
- ///////////////////////////////////////////////////////////////////////////
ctrue,使用条件:在Activity类方法体外,先输入sbc,在出现的注释块中输入“ctrue”,然后Alt+Enter,快速生成代码块:
- ///////////////////////////////////////////////////////////////////////////
- // <code>true</code>
- ///////////////////////////////////////////////////////////////////////////
fixme,使用条件:在Activity类方法体外,输入“fixme”,然后Alt+Enter,快速生成代码块:
- // FIXME: 2016/7/6
noop,使用条件:在Activity类方法前外,先输入“noop”,然后Alt+Enter,快速生成代码块:
- /* no-op */
stopship,使用条件:在Activity类方法体外,输入“stopship”,然后Alt+Enter,快速生成代码块:
- // FIXME: 2016/7/6
todo,使用条件:在Activity类方法体外,输入“todo”,然后Alt+Enter,快速生成代码块:
- // TODO: 2016/7/6
AndroidLog
logd,使用条件:在Activity类方法体内,输入“logd”,然后Alt+Enter,快速生成代码块:
- Log.d(TAG, "run: ");
loge,使用条件:在Activity类方法体内,输入“loge”,然后Alt+Enter,快速生成代码块:
- Log.e(TAG, "run: ");
logi,使用条件:在Activity类方法体内,输入“logi”,然后Alt+Enter,快速生成代码块:
- Log.i(TAG, "run: ");
logm,使用条件:在Activity类方法体内,输入“logm”,然后Alt+Enter,快速生成代码块:
- Log.d(TAG, "run() called with: " + "");
logr,使用条件:在Activity类方法体内,输入“logr”,然后Alt+Enter,快速生成代码块:
- Log.d(TAG, "run() returned: " + );
logt,使用条件:在Activity类方法体外,输入“logt”,然后Alt+Enter,快速生成代码块:
- private static final String TAG = "AudioMainActivity";
logw,使用条件:在Activity类方法体内,输入“logw”,然后Alt+Enter,快速生成代码块:
- private static void getMethod(){
- Log.w(TAG, "getMethod: ", );
- }
wtf,使用条件:在Activity类方法体内,输入“wtf”,然后Alt+Enter,快速生成代码块:
- private static void getMethod(){
- Log.wtf(TAG, "getMethod: ", );
- }
Live Templates默认的十四种模块,这里继续体验另外的Parcelable,AndroidXML,Groovy,html/xml,iterations,other,output,plain和surround模块。
Parcelable
Parcelable,为当前的类创建一个Parcelable模块
ParcelableEnum,为当前的enum创建一个Parcelable模块
ParcelableEnumTest,创建基本的enum test methods
ParcelBoolean,写入单一的boolean值到parcel中
ParcelBoolean,从parcel中读取单一的boolean值
UnparcelIntArray,不序列化整形数组
UnparcelStringArray,不序列化字符串数组
AndroidXML
appNs,使用条件:在xml文件标签内,输入“appNs”,然后Alt+Enter,快速生成代码:
- xmlns:app="http://schemas.android.com/apk/res-auto"
lh,使用条件:在xml文件标签内,输入“lh”,然后Alt+Enter,快速生成代码:
- android:layout_height=""
lhm,使用条件:在xml文件标签内,输入“lhm”,然后Alt+Enter,快速生成代码:
- android:layout_height="match_parent"
lhw,使用条件:在xml文件标签内,输入“lhw”,然后Alt+Enter,快速生成代码:
- android:layout_height="wrap_content"
lw,使用条件:在xml文件标签内,输入“lw”,然后Alt+Enter,快速生成代码:
- android:layout_width=""
lwm,使用条件:在xml文件标签内,输入“lwm”,然后Alt+Enter,快速生成代码:
- android:layout_width="match_parent"
lww,使用条件:在xml文件标签内,输入“lww”,然后Alt+Enter,快速生成代码:
- android:layout_width="wrap_content"
toolsNs,使用条件:在xml文件标签内,输入“toolsNs”,然后Alt+Enter,快速生成代码:
- xmlns:tools="http://schemas.android.com/tools"
Groovy
serr,使用条件:在类方法体内,输入“serr”,然后Alt+Enter,快速生成代码:
- System.err.println("");
souf,使用条件:在类方法体内,输入“souf”,然后Alt+Enter,快速生成代码:
- System.out.printf("");
sout,使用条件:在类方法体内,输入“sout”,然后Alt+Enter,快速生成代码:
- System.out.println();
soutm,使用条件:在类方法体内,输入“soutm”,打印出当前类名和方法名,然后Alt+Enter,快速生成代码:
- private void getMethode(){
- System.out.println("AudioMainActivity.getMethode");
- }
soutp,使用条件:在类方法体内,输入“soutp”,打印出当前方法参数名称和参数值,然后Alt+Enter,快速生成代码:
- private void getMethode(int name,int value){
- System.out.println("name = [" + name + "], value = [" + value + "]");
- }
soutv,使用条件:在类方法体内,输入“soutv”,打印出当前方法参数值,然后Alt+Enter,快速生成代码:
- private void getMethode(int name,int value){
- System.out.println("value = " + value);
- }
html/xml
CD,使用条件:在html或xml文件中,输入“CD”,然后Alt+Enter,快速生成代码:
- <![CDATA[
- ]]>
t,使用条件:在html或xml文件中,输入“t”,然后Alt+Enter,快速生成代码:
暂不清楚如何测试
T,使用条件:在html或xml文件中,输入“T”,然后Alt+Enter,快速生成代码:
- <></>
T2,使用条件:在HTML或JSP文件中,输入“T2”,然后Alt+Enter,快速生成代码:
暂不清楚如何测试
iterations
fori,然后Alt+Enter,创建iteration 循环体,快速生成代码:
- for (int i = 0; i < ; i++) {
- }
itar,然后Alt+Enter,迭代数组元素,快速生成代码:
- for (int i = 0; i < array.length; i++) {
- = array[i];
- }
itco,然后Alt+Enter,迭代java.util.Collection元素,快速生成代码:
- for (Iterator = collection.iterator(); .hasNext(); ) {
- Object = .next();
- }
iten,然后Alt+Enter,迭代java.util.Enumeration元素,快速生成代码:
- while (enumeration.hasMoreElements()) {
- Object = enumeration.nextElement();
- }
iter,然后Alt+Enter,迭代Iterable或数组元素,快速生成代码:
- for (Object : ) {
- }
itit,然后Alt+Enter,迭代java.util.Iterator元素,快速生成代码:
- while (iterator.hasNext()) {
- Object = iterator.next();
- }
itit,然后Alt+Enter,迭代List元素,快速生成代码:
- for (int i = 0; i < list.size(); i++) {
- Object o = list.get(i);
- }
ittok,然后Alt+Enter,从字符串迭代tokens元素,快速生成代码:
- for (StringTokenizer tokenizer = new StringTokenizer(LOG_TAG); tokenizer.hasMoreTokens(); ) {
- String token = tokenizer.nextToken();
- }
itve,然后Alt+Enter,迭代java.util.Vector元素,快速生成代码:
- for (int i = 0; i < vector.size(); i++) {
- Object = vector.elementAt(i);
- }
ritar,然后Alt+Enter,反序迭代数组元素,快速生成代码:
- for (int i = array.length - 1; i >= 0; i--) {
- = array[i];
- }
other
geti,当前类方法体外,插入单例方法,,输入geti,然后Alt+Enter,快速生成代码:
- public static AudioMainActivity getInstance() {
- return ;
- }
ifn,当前类方法体内,插入if null语句,输入ifn,然后Alt+Enter,快速生成代码:
- if (LOG_TAG == null) {
- }
inst,当前类方法体内,检查初始化的对象类型和向下抛出,输入inst,然后Alt+Enter,快速生成代码:
- if (LOG_TAG instanceof Object) {
- Object = (Object) LOG_TAG;
- }
lazy,当前类方法体内,初始化某个对象,输入lazy,然后Alt+Enter,快速生成代码:
- private AsyncHttpClient mClient;
- private void getMethod(){
- if (mClient == null) {
- mClient = new AsyncHttpClient();
- }
- }
lst,当前类方法体内,取出数组最后一个元素,输入lst,然后Alt+Enter,快速生成代码:
- [.length - 1]
mn,当前类方法体内,与指定变量比较,获取较小值,输入mn,然后Alt+Enter,快速生成代码:
- private int minValue=0;
- private void getMethod(){
- minValue = Math.min(minValue, 0);
- }
mx,当前类方法体内,与指定变量比较,获取较大值,输入mn,然后Alt+Enter,快速生成代码:
- private int minValue=0;
- private void getMethod(){
- minValue = Math.max(minValue, );
- }
psvm,当前类方法体内,输入psvm,然后Alt+Enter,快速生成代码:
暂不清楚如何测试
toar,当前类方法体内,将java.util.Collection元素保存到数组里,输入toar,然后Alt+Enter,快速生成代码:
- mCollection.toArray(new Object[mCollection.size()]);
output的代码块和Groovy的完全一样
serr,使用条件:在类方法体内,输入“serr”,然后Alt+Enter,快速生成代码:
- System.err.println("");
souf,使用条件:在类方法体内,输入“souf”,然后Alt+Enter,快速生成代码:
- System.out.printf("");
...
plain
psf,使用条件:在类方法体外,输入“psf”,然后Alt+Enter,快速生成代码:
- public static final
psfi,使用条件:在类方法体外,输入“psfi”,然后Alt+Enter,快速生成代码:
- public static final int
psfs,使用条件:在类方法体外,输入“psfs”,然后Alt+Enter,快速生成代码:
- public static final String
St,使用条件:在类方法体外,输入“St”,然后Alt+Enter,快速生成代码:
- String
thr,使用条件:在类方法体内,输入“thr”,然后Alt+Enter,快速生成代码:
- throw new
最后还有三个分类,surround,Zen HTML和Zen XSL,暂时不介绍,更多模块代码在今后的总结过程中方便自定义添加,根据个人编程习惯,进行调整。
Live Templates添加自定义模块
点击“Settings——>Editor——>Live Templates”右边的“+”号,可以选择Live Template或Template Group,Live Template默认当前对应添加的模块,Template Group为添加的模块名称分组,比如:CustomGroup,然后选中该分组后添加Live Template
你可能感兴趣的文章
转载请注明出处: https://www.teachcourse.cn/1912.html ,谢谢支持!