@zhongzilu
2019-01-28T20:09:24.000000Z
字数 1897
阅读 4993
File
Template
Android
Studio
我发现一个可以让写程序变得简单的方法,那就是自定义文件模板(Custom File Templates).那么什么是File Templates呢?说白了,就是一个已经包含一部分代码的源文件
首先,找到创建File Template的位置,依次打开File ==> Setting ==> Editor ==> File and Code Templates
之后点击 +
号添加一个File Template,这里需要填写 File Template的名称和代码。在本次案例中,我们将创建一个实现了部分方法的RecyclerViewAdapter的File Template。因此就取名叫RecyclerViewAdapter
之后你就可以在下方的代码区域粘贴或者编写你的模板代码了。这里有几个预置的变量可以使用,当文件被创建的时候,这些预置的变量将会被 将会被对应的值替代,变量如下:
${NAME}
选择的文件的文件名 ${PACKAGE_NAME}
包名${DATE}
系统当前的时间当然,你也可以自定义变量,在本案例中,我们需要提供ViewHolder
类和集合List的类型,所以自定义变量分别为${VIEWHOLDER_CLASS}
和${ITEM_CLASS}
那么现在就来编写用于创建模板的代码,代码如下:
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.List;
#parse("File Header.java")
public class ${NAME} extends RecyclerView.Adapter<${VIEWHOLDER_CLASS}> {
private final Context context;
private List<${ITEM_CLASS}> items;
public ${NAME}(List<${ITEM_CLASS}> items, Context context) {
this.items = items;
this.context = context;
}
@Override
public ${VIEWHOLDER_CLASS} onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.${LAYOUT_RES_ID}, parent, false);
return new ${VIEWHOLDER_CLASS}(v);
}
@Override
public void onBindViewHolder(${VIEWHOLDER_CLASS} holder, int position){
${ITEM_CLASS} item = items.get(position);
//TODO Fill in your logic for binding the view.
}
@Override
public int getItemCount() {
if (items == null){
return 0;
}
return items.size();
}
}
当你想要使用这个文件模板时,会提示你提供相关变量的值,比如${VIEWHOLDER_CLASS}
和${ITEM_CLASS}
,填写的值会自动替换对应的变量,非常的方便。
要使用已经定义好的File Template,只需要选中要创建位置的文件夹,然后点击鼠标右键,再点“New”,你就可以在列表中看到刚创建的File Template的名字
点击RecyclerViewAdapter后填写相关变量的值
填写完后点击"OK",之后你就可以看到自动生成的代码了
这样,今后我要实现一个RecyclerView的Adapter时,就不用再去写那么多代码了
如果你有一些比较好的代码模板,也可以分享给我哦 *^_^*
https://zybuluo.com/zhongzilu/note/370654
@author zhongzilu