欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-01-31 18:23:44
作者:hwj3747转载请注明使用场景举个例子,我们有个BaseActivity,里面定义了一些基础的方法,以后我们写的每个Activity都要继承这个基类,并且实现里面的方法,这是我们Android开发常用到的一种方法,但是这样就会有个问题,就是每次我们都要写很多重复的代码,这个时候我们就可以借助文件模板来实现这些重复的代码。使用方法比如说我有这样一个Activity,继承BaseActivity ,并且重写其getLayoutID(),onInitTitle(),onResolveInte....

作者: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选项:

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

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

  • ${PACKAGE_NAME} 当前包名
  • ${NAME} 当前类名
  • ${USER} 当前用户名
  • ${DATE} 当前日期
  • ${YEAR} 当前年份
  • M O N T H 当 前 月 份 等 等 。 并 且 我 们 也 可 以 自 定 义 一 些 变 量 , 格 式 是 {MONTH} 当前月份 等等。 并且我们也可以自定义一些变量,格式是 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这个包下新创建一个模板,如下:

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

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

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

最后生成代码:


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类一样。这样一个文件模板就算是完成了!

本文地址:https://blog.csdn.net/hwj3747/article/details/108979343