美文网首页android studioAndroid StudioAndroid Studio
Android studio 使用技巧(1)----文件模板(F

Android studio 使用技巧(1)----文件模板(F

作者: hwj3747 | 来源:发表于2017-02-28 15:07 被阅读319次

    作者:hwj3747
    转载请注明

    使用场景

    举个例子,我们有个BaseActivity,里面定义了一些基础的方法,以后我们写的每个Activity都要继承这个基类,并且实现里面的方法,这是我们Android开发常用到的一种方法,但是这样就会有个问题,就是每次我们都要写很多重复的代码,这个时候我们就可以借助文件模板来实现这些重复的代码。

    使用方法

    比如说我有这样一个Activity,继承BaseActivity ,并且重写其getLayoutID(),onInitTitle(),onResolveIntent(),onInitFragment(),4个方法来初始化这个Activity,我们发现这个类的大部分代码都是死的,所以我们可以用文件模板来快速创建这样一个类。

    package zuifan.hwj3747.com.zhuifan.ui.test2;
    
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.widget.Toast;
    
    import zuifan.hwj3747.com.zhuifan.R;
    import zuifan.hwj3747.com.zhuifan.base.BaseActivity;
    
    
    public class TestActivity2 extends BaseActivity {
    
        public static TestActivity2 instance;
    
        public static void launch(Context context) {
            Intent intent = new Intent(context, TestActivity2.class);
            context.startActivity(intent);
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
        }
    
        @Override
        protected int getLayoutID() {
            return  R.layout.activity_test2;
        }
    
        @Override
        protected void onInitTitle() {
            instance=TestActivity2.this;
        }
    
        @Override
        protected void onResolveIntent(Intent intent) {
    
        }
    
        @Override
        protected void onInitFragment() {
            showContent(new TestActivityFragment2(),R.id.Layout);
        }
    }
    
    

    打开setting搜索file template,找到file and code template选项:

    Paste_Image.png

    点击加号,新建一个模板,在Name的地方写上模板的名字比如TestTemplates,又下角是一些系统常量的说明:

    • ${PACKAGE_NAME} 当前包名
    • ${NAME} 当前类名
    • ${USER} 当前用户名
    • ${DATE} 当前日期
    • ${YEAR} 当前年份
    • ${MONTH} 当前月份
      等等。
      并且我们也可以自定义一些变量,格式是${},比如${test},在新建模板的时候会让你填这些值。

    那接下来我们就可以用系统常量加自定义的变量,把我们上面的Activity类模板写完了,如下:

    #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
    
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.widget.Toast;
    
    import ${BasePackage}.R;
    import ${BasePackage}.base.BaseActivity;
    
    
    public class ${NAME} extends BaseActivity {
    
        public static ${NAME} instance;
    
        public static void launch(Context context) {
            Intent intent = new Intent(context, ${NAME}.class);
            context.startActivity(intent);
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
        }
    
        @Override
        protected int getLayoutID() {
            return  R.layout.${layout_activity};
        }
    
        @Override
        protected void onInitTitle() {
            instance=${NAME}.this;
        }
    
        @Override
        protected void onResolveIntent(Intent intent) {
    
        }
    
        @Override
        protected void onInitFragment() {
            showContent(new ${fragment_name}(),R.id.${activity_id});
        }
    }
    

    把上面写好的模板填入TestTemplates,保存,接下来我们就可以快速创建Activity类了!我们在zuifan.hwj3747.com.zhuifan.ui.test这个包下新创建一个模板,如下:

    Paste_Image.png

    然后出现如下选择框,填入文件名,以及我们自定义的一些变量。点击完成。

    Paste_Image.png

    最后生成代码:

    
    package zuifan.hwj3747.com.zhuifan.ui.test;
    
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.widget.Toast;
    
    import zuifan.hwj3747.com.zhuifan.R;
    import zuifan.hwj3747.com.zhuifan.base.BaseActivity;
    
    
    public class TestActivity extends BaseActivity {
    
        public static TestActivity instance;
    
        public static void launch(Context context) {
            Intent intent = new Intent(context, TestActivity.class);
            context.startActivity(intent);
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
        }
    
        @Override
        protected int getLayoutID() {
            return R.layout.activity_test;
        }
    
        @Override
        protected void onInitTitle() {
            instance = TestActivity.this;
        }
    
        @Override
        protected void onResolveIntent(Intent intent) {
    
        }
    
        @Override
        protected void onInitFragment() {
            showContent(new TestActivityFragment2(), R.id.test);
        }
    }
    

    测试通过,与要求的Activity类一样。这样一个文件模板就算是完成了!

    相关文章

      网友评论

        本文标题:Android studio 使用技巧(1)----文件模板(F

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