AndroidStudio自带模板位置
- Mac下:
Applications/Android Studio.app/Contents/plugins/android/lib/templates
- Windows下:
/plugins/android/lib/templates/
以创建MVPFragment为例创建自己的模板
创建MVP需要创建MVPContract和MVPPresenter的默认实现,所以需要额外创建两个源代码文件。MVPContract.java 和MVPPresenter.java,同时需要绑定Contract和Presenter的名称和Fragment一致。
- 找到AndroidStudio自带模板中的BlankFragment模板拷贝一份命名为MVPFragment。模板地址:
Applications/Android Studio.app/Contents/plugins/android/lib/templates/other/BlankFragment
- 添加参数
- 找到MVPFragment文件夹下的文件 template.xml
- 修改模板名称
找到<template
标签下的name
修改为你想要的名称 例如:Fragment(MVP) - 添加对Contract和Presenter文件的描述参数
- 修改模板名称
- 找到MVPFragment文件夹下的文件 template.xml
<parameter
id="contractName"
name="contract Name"
type="string"
constraints="class|nonempty|unique"
default="${underscoreToCamelCase(classToResource(className))}Contract"
help="The name of the Contract class to create" />
<parameter
id="presenterName"
name="presenter Name"
type="string"
constraints="class|nonempty|unique"
default="${underscoreToCamelCase(classToResource(className))}Presenter"
help="The name of the Presenter class to create" />
id: 是唯一的变量,后面代码中可以通过$contractName}来获取他的值
default:是默认Contract的名称,可以通过${underscoreToCamelCase(classToResource(className))}Contract
来进行修改
- 创建代码模板
打开MVPFragment文件夹下面的/root/src/app_package
创建模板文件:
MVPContract.java.ftl
package ${packageName};
public interface ${contractName} {
interface Presenter {
void subscribe();
void unsubscribe();
}
interface View {
void setPresenter(Presenter presenter);
void showLoading();
void hideLoading();
void updateView();
}
}
MVPPresenter.java.ftl
package ${packageName};
import io.reactivex.disposables.CompositeDisposable;
public class ${presenterName} implements ${contractName}.Presenter {
private ${contractName}.View mView;
private CompositeDisposable mDisposable;
public ${presenterName}(${contractName}.View view) {
mView = view;
mView.setPresenter(this);
mDisposable=new CompositeDisposable();
}
@Override
public void subscribe() {
}
@Override
public void unsubscribe() {
mDisposable.clear();
}
}
- 关联模板文件
打开MVPFragment 文件夹下的recipe.xml
文件
照着Fragment.java 的创建方法创建Contract和Presenter
代码如下:
<open file="${escapeXmlAttribute(srcOut)}/${contractName}.java" />
<instantiate from="root/src/app_package/MVPContract.java.ftl"
to="${escapeXmlAttribute(srcOut)}/${contractName}.java" />
<open file="${escapeXmlAttribute(srcOut)}/${presenterName}.java" />
<instantiate from="root/src/app_package/MVPPresenter.java.ftl"
to="${escapeXmlAttribute(srcOut)}/${presenterName}.java" />
到此MVPFragment模板创建完成。重启AndroidStudio创建Fragment你就会看到MVPFragment。
网友评论