天天看點

AndroidStudio筆記(4)編碼效率+1 的 File Templates前言正文最後

前言

這一篇是接着 AndroidStudio筆記(3)的,在上一篇中我們使用了 Live Templates的關鍵字來快速補全和生成代碼,那有沒有更近一步的騷操作?比如建立檔案?答案是肯定的,那就是 File Templates。先看看今天的成果物預覽圖,如果不感興趣就可以不看下去。

  • 一鍵建立 TestViewPagerAdapter
AndroidStudio筆記(4)編碼效率+1 的 File Templates前言正文最後

建立TestViewPagerAdapter示範

  • 建立RecyclerViewAdapter
AndroidStudio筆記(4)編碼效率+1 的 File Templates前言正文最後

建立RecyclerViewAdapter示範

正文

File Templates 的入口

File Templates 有兩個入口。

    1. File -> New -> Edit File Templates
AndroidStudio筆記(4)編碼效率+1 的 File Templates前言正文最後

Edit File Templates

AndroidStudio筆記(4)編碼效率+1 的 File Templates前言正文最後

File Templates

    1. Settings -> Editor -> File and Code Templates
AndroidStudio筆記(4)編碼效率+1 的 File Templates前言正文最後

File and Code Templates

簡單建立 ViewPagerAdapter File Templates

先來試試水,點選左上角的加号,建立一個模闆,名字輸入為 : ViewPagerAdapter,将編寫好的模闆代碼放到内容框中:

AndroidStudio筆記(4)編碼效率+1 的 File Templates前言正文最後

ViewPagerAdapter create

代碼模闆:

package ${PACKAGE_NAME};
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import java.util.ArrayList;
import java.util.List;

/**
 *  Created by ${USER} on ${DATE}
 */
public class ${NAME} extends FragmentStatePagerAdapter {
    private List<Fragment> mFragments = new ArrayList<Fragment>();

    public ${NAME}(FragmentManager fm, ArrayList fragmentArrayList) {
        super(fm);
        this.mFragments = fragmentArrayList;
    }

    @Override
    public Fragment getItem(int position) {
        return mFragments.get(position);
    }

    @Override
    public int getCount() {
        return mFragments.size();
    }
}
           

從上面的代碼可以看出,事實上和我們平常寫的代碼沒有什麼差別,唯一不同的就是一些占位符,而AS又為我們内置了一些占位符

占位符 含義
${PACKAGE_NAME} 包名
${NAME} 彈出的視窗中輸入的檔案名稱
${USER} 目前電腦的登陸使用者的名稱
${DATE} 目前如期
${TIME} 目前時間
${YEAR} 目前年份
${MONTH} 目前月份
${MONTH_NAME_SHORT} 月份的前三個單詞,在中文中無差別,如:九月
${MONTH_NAME_FULL} 月份的全稱,如:九月
${DAY} 号數,一個月中的幾号
${DAY_NAME_SHORT} 星期幾的前三個單詞,在中文中無差別,如:星期四
${DAY_NAME_FULL} 星期幾的全稱,如:星期四
${HOUR} 目前小時
${MINUTE} 目前分鐘
${PROJECT_NAME} 目前項目名稱

來看看我們的成果吧。

AndroidStudio筆記(4)編碼效率+1 的 File Templates前言正文最後

看到這裡,可能大家會有一個疑問,既然能通過

AndroidStudio筆記(4)編碼效率+1 的 File Templates前言正文最後

{NAME}這樣通過我們的輸入來替換一些屬性呢?這就是我們接下來的内容了,建立一個 RecyclerView 的Adapter。

前面說道,AS為我們提供了一些占位符,其實我們隻需要按照格式,定義沒有的占位符,那麼就會顯示相應的輸入框了,如下:

AndroidStudio筆記(4)編碼效率+1 的 File Templates前言正文最後

Des

AndroidStudio筆記(4)編碼效率+1 的 File Templates前言正文最後

Create Des

進階建立 RecyclerView.Adapter

還是和前面一樣的步驟,建立新的 Code File Templates,複制下面的代碼塊放入内容區:

package ${PACKAGE_NAME};
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.List;
/**
 *  Created by ${USER} on ${DATE}
 */
#parse("File Header.java")
public class ${NAME} extends RecyclerView.Adapter<${NAME}.${VIEW_HOLDER}>{
    private List<${BEAN_NAME}> mDatas = new ArrayList<>();
    @Override
    public ${VIEW_HOLDER} onCreateViewHolder(ViewGroup parent, int viewType) {
        return new ${VIEW_HOLDER}(LayoutInflater.from(parent.getContext()).
        inflate(R.layout.${LAYOUT_NAME}, parent, false));
    }
    @Override
    public void onBindViewHolder(${NAME}.${VIEW_HOLDER} holder, int position) {
    }
    @Override
    public int getItemCount() {
        return mDatas.size();
    }
    public void addItems(List<${BEAN_NAME}> datas){
        this.mDatas.addAll(datas);
        notifyDataSetChanged();
    }
    class ${VIEW_HOLDER} extends RecyclerView.ViewHolder {
            ${VIEW_HOLDER}(View itemView) {
            super(itemView);
        }
    }
}
           

占位符解釋

名字
檔案名、類名
${VIEW_HOLDER} ViewHolder的類名
${BEAN_NAME} 實體類的名字
${LAYOUT_NAME} 布局的名稱

要使用這個模闆,我們需要先建立 bean 和 layout 檔案,我為了示範,已經是提前建立好了。

來看看成果吧:

AndroidStudio筆記(4)編碼效率+1 的 File Templates前言正文最後

看看,的确是達到了我們想要的結果,是不是節省了大量的時間?快來試一試吧!

最後

總結與結束

File Templates這個東西并不難,難的是我先要有代碼,然後一步一步的改造成File Templates,個人也希望大家都能有自己的File Templates,我們不應該把大多數時間浪費到重複性的工作上。

另外就是File Templates是可以導出,不用怕丢失,是以我們可以放心大膽的收集和編寫自己的File Templates,具體導出方法如下:

AndroidStudio筆記(4)編碼效率+1 的 File Templates前言正文最後

導出

彩蛋

另外,相信大家也發現了,我們在使用 File Templates 的時候我們需要先建立好相應的東西,如 bean、layout等,有沒有一種方式能夠讓我省去這些建立步驟呢?答案是肯定的,敬請期待我的下一篇文章。

我的部落格位址

,第一時間會将文章釋出在上面。

我的GitHub位址

,所有文章中的源碼都在這裡。

AndroidStudio筆記(4)編碼效率+1 的 File Templates前言正文最後

FullScreenDeveloper

繼續閱讀