教程说明
本文主要介绍使用Android Studio创建Templates文件模板,由于现在大部分项目都采用MVP架构,Model和Presenter文件自然少不了,每次都写一堆重复的代码有些浪费时间,所以能够使用模板快速创建相应文件就方便多了。
1、首先使用Android Studio创建一个项目,项目结构使用MVP,因为MVP没有统一的标准,但是基本思想是一致的,我这里的MVP只是我写的一种格式,如果想用其他的MVP格式也没问题,本文不做讨论。重点是Templates的创建及使用。
接下来先看看我的项目目录结构:- 简单介绍一下项目结构,这只是我自己的习惯,或许并不适合所有人,这个也没有绝对的标准。
- base 此包下主要放一些基类比如BaseActivity,BaseFragment,BaseView等等。有些人喜欢把这些基类直接放在项目package下,如果类比较多的话也是不太合适,索性又分成了一个包。
- common 此包下主要放一些通用工具类及自定义View等,比如数据库操作工具类、StringUtil、自定义View等,不仅仅是这个项目,如果要开发新的项目,直接把这个包拷贝过去就可以了,或者把这部分作为Library项目单独拿出来都可以。
- data 主要存放一些数据相关类,我习惯把adapter也放在这里,JavaBean、网络请求及响应数据等
- module 业务处理包,此处按功能细分,每个功能包含Activity或Fragment、Contract、Model、Presenter(MVP的结构不统一,每个人有每个人的写法,不过基本思想是不会变的)
2、选中app,右键->New->Edit File Templates,弹出如下窗口
点击左上角“+”,开始新建模板,如名称为MVPContract,接下来就写自己的模板了。仔细按照窗口中Description提示写就可以了,下面是我写的MVPContract模板代码,写完点击“ok”,模板创建完成。
MVPContract
代码如下:package ${PACKAGE_NAME}; import ${APPLICATION_ID}.base.BaseModel; import ${APPLICATION_ID}.base.BasePresenter; import ${APPLICATION_ID}.base.BaseView; /** * Created by zhangzhenguo on ${DATE} * ${NAME} contract */ public interface ${NAME}Contract { interface I${NAME}View extends BaseView<I${NAME}Presenter>{ } interface I${NAME}Model extends BaseModel{ } interface I${NAME}Presenter extends BasePresenter{ } }
MVPModel
代码如下:package ${PACKAGE_NAME}; /** * Created by zhangzhenguo on ${DATE} * ${NAME} model */ public class ${NAME}Model implements ${NAME}Contract.I${NAME}Model { }
MVPPresenter
代码如下:package ${PACKAGE_NAME}; /** * Created by zhangzhenguo on ${DATE} * ${NAME} presenter */ public class ${NAME}Presenter implements ${NAME}Contract.I${NAME}Presenter{ private ${NAME}Contract.I${NAME}View mView; private ${NAME}Contract.I${NAME}Model mModel; public ${NAME}Presenter(${NAME}Contract.I${NAME}View view){ mView = view; mModel = new ${NAME}Model(); mView.setPresenter(this); } }
NewActivity
代码如下:package ${PACKAGE_NAME}; import android.os.Bundle; import ${APPLICATION_ID}.R; import ${APPLICATION_ID}.base.BaseActivity; /** * Created by zhangzhenguo on ${DATE} * ${NAME} activity */ public class ${NAME}Activity extends BaseActivity implements ${NAME}Contract.I${NAME}View{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_); } @Override public void setPresenter(UserContract.IUserPresenter presenter) { } @Override public void showErrorMessage() { } @Override public boolean isActive() { return false; } @Override public void showProgress() { } @Override public void dismissProgress() { } }
3、 创建完模板接下来就可以使用了。在你想要创建文件的包下右键->New->MVPContract。在弹出的输入框填写文件名,这里注意:不要再写“Contract”,因为模板中已经写好,会自动添加。比如我写“User”,创建的文件名为“UserContract.java”
4、OK,到这里一个模板的创建和使用就完成了,很多类型的文件都可以通过创建模板来生成,非常方便。