Android 模板编写

2018-03-28  本文已影响35人  虾悠

AndroidStudio自带模板位置

  1. Mac下: Applications/Android Studio.app/Contents/plugins/android/lib/templates
  2. Windows下:/plugins/android/lib/templates/

以创建MVPFragment为例创建自己的模板

创建MVP需要创建MVPContract和MVPPresenter的默认实现,所以需要额外创建两个源代码文件。MVPContract.java 和MVPPresenter.java,同时需要绑定Contract和Presenter的名称和Fragment一致。

  1. 找到AndroidStudio自带模板中的BlankFragment模板拷贝一份命名为MVPFragment。模板地址:
    Applications/Android Studio.app/Contents/plugins/android/lib/templates/other/BlankFragment
  1. 添加参数
    • 找到MVPFragment文件夹下的文件 template.xml
      • 修改模板名称
        找到 <template标签下的name修改为你想要的名称 例如:Fragment(MVP)
      • 添加对Contract和Presenter文件的描述参数
     <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 来进行修改

  1. 创建代码模板
    打开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();
    }
}
  1. 关联模板文件
    打开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。

上一篇下一篇

猜你喜欢

热点阅读