Android Studio “Live Templates”如何提升编程效率?

2016-07-06 22:30 阅读 2,941 次 评论 0 条
版权声明:本文著作权归TeachCourse所有,未经许可禁止转载,谢谢支持!
转载请注明出处:http://teachcourse.cn/1912.html

一.摘要

熟悉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”,下面针对记录各种代码块使用情况总结。
001-Android

Android

const,使用条件:在Activity类方法体外,输入“const”后回车,快速生成代码块:

  1. private static final int  = 294;  

fbc,使用条件:在Activity类方法体内,输入“fbc”后回车,快速生成代码块:

  1. () findViewById(R.id.);  

foreach,使用条件:在Activity类方法体内,输入“foreach”后回车,快速生成代码块:

  1. for (:  
  2.             ) {  
  3.              
  4.        }  

gone,使用条件:在Activity类方法体内,输入“gone”后回车,快速生成代码块:

  1. .setVisibility(View.GONE);  

IntentView,使用条件:在Activity类方法体内,输入“IntentView”后回车,快速生成代码块:

  1. Intent view = new Intent();  
  2.        view.setAction(Intent.ACTION_VIEW);  
  3.        view.setData(Uri.parse());  
  4.        startActivity(view);  

key,使用条件:在Activity类方法体外,输入“key”后回车,快速生成代码块:

  1. private static final String KEY_ = "";  

newInstance,使用条件:在Activity类方法体外,输入“newInstance”后回车,快速生成代码块:

  1. public static AudioMainActivity newInstance() {  
  2.           
  3.         Bundle args = new Bundle();  
  4.           
  5.         AudioMainActivity fragment = new AudioMainActivity();  
  6.         fragment.setArguments(args);  
  7.         return fragment;  
  8.     }  

newInstance,使用条件:在Activity类方法体外,输入“noInstance”后回车,快速生成代码块:

  1. private AudioMainActivity() {  
  2.         //no instance  
  3.     }  

rgS,使用条件:在Activity类方法体内,输入“rgS”后回车,快速生成代码块:

  1. .getString(R.string.)  

rouiT,使用条件:在Activity类方法体内,输入“rouiT”后回车,快速生成代码块:

  1. getActivity().runOnUiThread(new Runnable() {  
  2.             @Override  
  3.             public void run() {  
  4.                   
  5.             }  
  6.         });  

sbc,使用条件:在Activity类方法体外,输入“sbc”后回车,快速生成:

  1.     ///////////////////////////////////////////////////////////////////////////  
  2. //   
  3. ///////////////////////////////////////////////////////////////////////////  

Sfmt,使用条件:在Activity类方法体内,输入“Sfmt”后回车,快速生成代码块:

  1. String.format("", );  

starter,使用条件:在Activity类方法体外,输入“starter”后回车,快速生成代码块:

  1. public static void start(Context context) {  
  2.     Intent starter = new Intent(context, AudioMainActivity.class);  
  3.     starter.putExtra();  
  4.     context.startActivity(starter);  
  5. }  

Toast,使用条件:在Activity类方法体内,输入“Toast”后回车,快速生成代码块:

  1. Toast.makeText(AudioMainActivity.this"", Toast.LENGTH_SHORT).show();  

ViewConstructors,使用条件:在View类方法体外,输入“ViewConstructors”后回车,快速生成代码块:

  1. public AudioMainActivity(Context context) {  
  2. this(context, null);  
  3. }  
  4.   
  5. public AudioMainActivity(Context context, AttributeSet attrs) {  
  6. this(context, attrs, 0);  
  7. }  
  8.   
  9. public AudioMainActivity(Context context, AttributeSet attrs, int defStyle) {  
  10. super(context, attrs, defStyle);  
  11.   
  12. }  

visible,使用条件:在Activity类方法体内,输入“visible”后Alt+Enter,快速生成代码块:

  1. .setVisibility(View.VISIBLE);  

wrapIt,使用条件:在build.gradle文件中,输入“wrapIt”,然后Alt+Enter,快速生成代码块:

  1. task wrapper(type: Wrapper) {  
  2.     gradleVersion = ""  
  3. }  

AndroidComments

002-AndroidComments

ccode,使用条件:在Activity类方法体外,先输入sbc,在出现的注释块中输入“ccode”,然后Alt+Enter,快速生成代码块:

  1. ///////////////////////////////////////////////////////////////////////////  
  2. // <code></code>  
  3. ///////////////////////////////////////////////////////////////////////////  

cfalse,使用条件:在Activity类方法体外,先输入sbc,在出现的注释块中输入“cfalse”,然后Alt+Enter,快速生成代码块:

  1.     ///////////////////////////////////////////////////////////////////////////  
  2. // <code>false</code>  
  3. ///////////////////////////////////////////////////////////////////////////  

clink,使用条件:在Activity类方法体外,先输入sbc,在出现的注释块中输入“clink”,然后Alt+Enter,快速生成代码块:

  1.     ///////////////////////////////////////////////////////////////////////////  
  2. // {@link }  
  3. ///////////////////////////////////////////////////////////////////////////  

ctrue,使用条件:在Activity类方法体外,先输入sbc,在出现的注释块中输入“ctrue”,然后Alt+Enter,快速生成代码块:

  1.     ///////////////////////////////////////////////////////////////////////////  
  2. // <code>true</code>  
  3. ///////////////////////////////////////////////////////////////////////////  

fixme,使用条件:在Activity类方法体外,输入“fixme”,然后Alt+Enter,快速生成代码块:

  1. // FIXME: 2016/7/6    

noop,使用条件:在Activity类方法前外,先输入“noop”,然后Alt+Enter,快速生成代码块:

  1. /* no-op */  

stopship,使用条件:在Activity类方法体外,输入“stopship”,然后Alt+Enter,快速生成代码块:

  1. // FIXME: 2016/7/6  

todo,使用条件:在Activity类方法体外,输入“todo”,然后Alt+Enter,快速生成代码块:

  1. // TODO: 2016/7/6   

AndroidLog

003-AndroidLog

logd,使用条件:在Activity类方法体内,输入“logd”,然后Alt+Enter,快速生成代码块:

  1. Log.d(TAG, "run: ");  

logd,使用条件:在Activity类方法体内,输入“loge”,然后Alt+Enter,快速生成代码块:

  1. Log.e(TAG, "run: ");    

logi,使用条件:在Activity类方法体内,输入“logi”,然后Alt+Enter,快速生成代码块:

  1. Log.i(TAG, "run: ");   

logm,使用条件:在Activity类方法体内,输入“logm”,然后Alt+Enter,快速生成代码块:

  1. Log.d(TAG, "run() called with: " + "");  

logr,使用条件:在Activity类方法体内,输入“logr”,然后Alt+Enter,快速生成代码块:

  1. Log.d(TAG, "run() returned: " + );   

logt,使用条件:在Activity类方法体外,输入“logt”,然后Alt+Enter,快速生成代码块:

  1. private static final String TAG = "AudioMainActivity";  

logw,使用条件:在Activity类方法体内,输入“logw”,然后Alt+Enter,快速生成代码块:

  1. private static void getMethod(){  
  2.         Log.w(TAG, "getMethod: ", );  
  3.     }  

wtf,使用条件:在Activity类方法体内,输入“wtf”,然后Alt+Enter,快速生成代码块:

  1. private static void getMethod(){  
  2.         Log.wtf(TAG, "getMethod: ", );  
  3.     }  

Live Templates默认的十四种模块,这里继续体验另外的Parcelable,AndroidXML,Groovy,html/xml,iterations,other,output,plain和surround模块。

Parcelable

004-AndroidParcelable

Parcelable,为当前的类创建一个Parcelable模块

ParcelableEnum,为当前的enum创建一个Parcelable模块

ParcelableEnumTest,创建基本的enum test methods

ParcelBoolean,写入单一的boolean值到parcel中

ParcelBoolean,从parcel中读取单一的boolean值

UnparcelIntArray,不序列化整形数组

UnparcelStringArray,不序列化字符串数组

AndroidXML

005-AndroidXML

appNs,使用条件:在xml文件标签内,输入“appNs”,然后Alt+Enter,快速生成代码:

  1. xmlns:app="http://schemas.android.com/apk/res-auto"  

lh,使用条件:在xml文件标签内,输入“lh”,然后Alt+Enter,快速生成代码:

  1. android:layout_height=""  

lhm,使用条件:在xml文件标签内,输入“lhm”,然后Alt+Enter,快速生成代码:

  1. android:layout_height="match_parent"  

lhw,使用条件:在xml文件标签内,输入“lhw”,然后Alt+Enter,快速生成代码:

  1. android:layout_height="wrap_content"  

lw,使用条件:在xml文件标签内,输入“lw”,然后Alt+Enter,快速生成代码:

  1. android:layout_width=""  

lwm,使用条件:在xml文件标签内,输入“lwm”,然后Alt+Enter,快速生成代码:

  1. android:layout_width="match_parent"  

lww,使用条件:在xml文件标签内,输入“lww”,然后Alt+Enter,快速生成代码:

  1. android:layout_width="wrap_content"  

toolsNs,使用条件:在xml文件标签内,输入“toolsNs”,然后Alt+Enter,快速生成代码:

  1. xmlns:tools="http://schemas.android.com/tools"  

Groovy

006-Groovy

serr,使用条件:在类方法体内,输入“serr”,然后Alt+Enter,快速生成代码:

  1. System.err.println("");  

souf,使用条件:在类方法体内,输入“souf”,然后Alt+Enter,快速生成代码:

  1. System.out.printf("");  

sout,使用条件:在类方法体内,输入“sout”,然后Alt+Enter,快速生成代码:

  1. System.out.println();  

soutm,使用条件:在类方法体内,输入“soutm”,打印出当前类名和方法名,然后Alt+Enter,快速生成代码:

  1. private void getMethode(){  
  2.     System.out.println("AudioMainActivity.getMethode");  
  3. }  

soutp,使用条件:在类方法体内,输入“soutp”,打印出当前方法参数名称和参数值,然后Alt+Enter,快速生成代码:

  1. private void getMethode(int name,int value){  
  2.     System.out.println("name = [" + name + "], value = [" + value + "]");  
  3. }  

soutv,使用条件:在类方法体内,输入“soutv”,打印出当前方法参数值,然后Alt+Enter,快速生成代码:

  1. private void getMethode(int name,int value){  
  2.     System.out.println("value = " + value);  
  3. }  

html/xml

007-html&xml

CD,使用条件:在html或xml文件中,输入“CD”,然后Alt+Enter,快速生成代码:

  1. <![CDATA[ 
  2.  
  3. ]]>  

t,使用条件:在html或xml文件中,输入“t”,然后Alt+Enter,快速生成代码:

暂不清楚如何测试

T,使用条件:在html或xml文件中,输入“T”,然后Alt+Enter,快速生成代码:

  1. <></>  

T2,使用条件:在HTML或JSP文件中,输入“T2”,然后Alt+Enter,快速生成代码:

暂不清楚如何测试

iterations

008-iterations

fori,然后Alt+Enter,创建iteration 循环体,快速生成代码:

  1. for (int i = 0; i < ; i++) {  
  2.              
  3.        }  

itar,然后Alt+Enter,迭代数组元素,快速生成代码:

  1. for (int i = 0; i < array.length; i++) {  
  2.            = array[i];  
  3.             
  4.       }  

itco,然后Alt+Enter,迭代java.util.Collection元素,快速生成代码:

  1. for (Iterator  = collection.iterator(); .hasNext(); ) {  
  2.          Object  =  .next();  
  3.            
  4.      }  

iten,然后Alt+Enter,迭代java.util.Enumeration元素,快速生成代码:

  1. while (enumeration.hasMoreElements()) {  
  2.         Object  =  enumeration.nextElement();  
  3.           
  4.     }  

iter,然后Alt+Enter,迭代Iterable或数组元素,快速生成代码:

  1. for (Object  : ) {  
  2.           
  3.     }  

itit,然后Alt+Enter,迭代java.util.Iterator元素,快速生成代码:

  1. while (iterator.hasNext()) {  
  2.         Object  =  iterator.next();  
  3.           
  4.     }  

itit,然后Alt+Enter,迭代List元素,快速生成代码:

  1. for (int i = 0; i < list.size(); i++) {  
  2.         Object o =  list.get(i);  
  3.           
  4.     }  

ittok,然后Alt+Enter,从字符串迭代tokens元素,快速生成代码:

  1. for (StringTokenizer tokenizer = new StringTokenizer(LOG_TAG); tokenizer.hasMoreTokens(); ) {  
  2.        String token = tokenizer.nextToken();  
  3.          
  4.    }  

itve,然后Alt+Enter,迭代java.util.Vector元素,快速生成代码:

  1. for (int i = 0; i < vector.size(); i++) {  
  2.       Object  =  vector.elementAt(i);  
  3.         
  4.   }  

ritar,然后Alt+Enter,反序迭代数组元素,快速生成代码:

  1. for (int i = array.length - 1; i >= 0; i--) {  
  2.       = array[i];  
  3.        
  4.  }  

other

009-other

geti,当前类方法体外,插入单例方法,,输入geti,然后Alt+Enter,快速生成代码:

  1. public static AudioMainActivity getInstance() {  
  2.     return ;  
  3. }  

ifn,当前类方法体内,插入if null语句,输入ifn,然后Alt+Enter,快速生成代码:

  1. if (LOG_TAG == null) {  
  2.           
  3.     }  

inst,当前类方法体内,检查初始化的对象类型和向下抛出,输入inst,然后Alt+Enter,快速生成代码:

  1. if (LOG_TAG instanceof Object) {  
  2.         Object  = (Object) LOG_TAG;  
  3.           
  4.     }  

lazy,当前类方法体内,初始化某个对象,输入lazy,然后Alt+Enter,快速生成代码:

  1. private AsyncHttpClient mClient;  
  2. private void getMethod(){  
  3.   
  4.     if (mClient == null) {  
  5.         mClient = new AsyncHttpClient();  
  6.     }  
  7. }  

lst,当前类方法体内,取出数组最后一个元素,输入lst,然后Alt+Enter,快速生成代码:

  1. [.length - 1]  

mn,当前类方法体内,与指定变量比较,获取较小值,输入mn,然后Alt+Enter,快速生成代码:

  1. private int minValue=0;  
  2. private void getMethod(){  
  3.     minValue = Math.min(minValue, 0);  
  4.       
  5. }  

mx,当前类方法体内,与指定变量比较,获取较大值,输入mn,然后Alt+Enter,快速生成代码:

  1. private int minValue=0;  
  2. private void getMethod(){  
  3.     minValue = Math.max(minValue, );  
  4.       
  5. }  

psvm,当前类方法体内,输入psvm,然后Alt+Enter,快速生成代码:

暂不清楚如何测试

toar,当前类方法体内,将java.util.Collection元素保存到数组里,输入toar,然后Alt+Enter,快速生成代码:

  1. mCollection.toArray(new Object[mCollection.size()]);  

output的代码块和Groovy的完全一样

010-output

serr,使用条件:在类方法体内,输入“serr”,然后Alt+Enter,快速生成代码:

  1. System.err.println("");  

souf,使用条件:在类方法体内,输入“souf”,然后Alt+Enter,快速生成代码:

  1. System.out.printf("");  

...

plain

011-plain

psf,使用条件:在类方法体外,输入“psf”,然后Alt+Enter,快速生成代码:

  1. public static final  

psfi,使用条件:在类方法体外,输入“psfi”,然后Alt+Enter,快速生成代码:

  1. public static final int  

psfs,使用条件:在类方法体外,输入“psfs”,然后Alt+Enter,快速生成代码:

  1. public static final String  

St,使用条件:在类方法体外,输入“St”,然后Alt+Enter,快速生成代码:

  1. String   

thr,使用条件:在类方法体内,输入“thr”,然后Alt+Enter,快速生成代码:

  1. throw new  

最后还有三个分类,surround,Zen HTML和Zen XSL,暂时不介绍,更多模块代码在今后的总结过程中方便自定义添加,根据个人编程习惯,进行调整。

Live Templates添加自定义模块

点击“Settings——>Editor——>Live Templates”右边的“+”号,可以选择Live Template或Template Group,Live Template默认当前对应添加的模块,Template Group为添加的模块名称分组,比如:CustomGroup,然后选中该分组后添加Live Template
custom-live-template

关注公众号 扫一扫二维码,加我QQ

如果文章对你有帮助,欢迎点击上方按钮关注作者

来源:TeachCourse每周一次,深入学习Android教程,关注(QQ1589359239或公众号TeachCourse)
转载请注明出处:http://teachcourse.cn/1912.html
自定义弹窗 VS AlertDialog分享弹窗 自定义弹窗 VS AlertDialog分
LinkedHashMap方法解析 LinkedHashMap方法解析
Eclipse卸载已安装的Genymotion插件 Eclipse卸载已安装的Genymotio
浅谈线程和进程 浅谈线程和进程

发表评论

呲牙 憨笑 坏笑 偷笑 色 微笑 抓狂 睡觉 酷 流汗 鼓掌 大哭 可怜 疑问 晕 惊讶 得意 尴尬 发怒 奋斗 衰 骷髅 啤酒 吃饭 礼物 强 弱 握手 OK NO 勾引 拳头 差劲 爱你

表情