美文网首页
Android 模板编写

Android 模板编写

作者: 虾悠 | 来源:发表于2018-03-28 09:36 被阅读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。

    相关文章

      网友评论

          本文标题:Android 模板编写

          本文链接:https://www.haomeiwen.com/subject/rdtycftx.html