LoginSignup
10
10

More than 5 years have passed since last update.

ファイルテンプレート機能を使って Fragment のテンプレを作る

Last updated at Posted at 2015-01-20

はじめに

いろいろ便利な機能があるんですね。最近は Tips of the Day を3回に1回くらい読むようになりました。

導入すれば新たに Fragment なんかを作った時の、あーめんどくさ感が減る気がします。もちろん Fragment 以外にも使えます。
コードの統一感も増して、一石二鳥なので、チームでも個人でも導入する価値ありかと思います!

ちなみに control + o でオーバライドメソッドを簡単に作ることもできます。このショートカットも覚えておくと便利だと思います。

template3.png

使い方

  • [Android Studio]-[Preferences]-[File and Code Templates]の順に選択
  • Templates タブで + ボタンをクリック
  • テンプレ名を入力し、テンプレコードを入力して保存する

Description エリアに変数の使い方の説明があります。

template1.png

  • クラスの新規作成時に、プルダウンから作成したテンプレを選んで実行

超簡単ですね!

template2.png

テンプレサンプル

詳細な説明は割愛します。

サンプル1

Fragment のレイアウトに Toolbar を配置する Fragment のテンプレ

ToolbarFragment
package ${PACKAGE_NAME};

import android.app.Fragment;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

#parse("File Header.java")
public class ${NAME} extends Fragment {

    private static final String TAG = ${NAME}.class.getSimpleName();
    private static final String ARG_TITLE = "title";

    public static ${NAME} newInstance(String title) {
        Bundle args = new Bundle();
        args.putString(ARG_TITLE, title);
        ${NAME} fragment = new ${NAME}();
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_hoge, container, false);

        Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
        toolbar.setTitle(getArguments().getString(ARG_TITLE));
        toolbar.setNavigationIcon(R.drawable.ic_navigation_hoge);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
            }
        });
        toolbar.inflateMenu(R.menu.hoge);
        toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem menuItem) {
                return false;
            }
        });

        return view;
    }
}

サンプル2

Fragment で ActionBar のメニューをセットアップするテンプレ

ActionBarFragment
package ${PACKAGE_NAME};

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

#parse("File Header.java")
public class ${NAME} extends Fragment {

    private static final String TAG = ${NAME}.class.getSimpleName();
    private static final String ARG_HOGE = "hoge";

    public static ${NAME} newInstance(String hoge) {
        Bundle args = new Bundle();
        args.putString(ARG_HOGE, hoge);
        ${NAME} fragment = new ${NAME}();
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_hoge, container, false);
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        setHasOptionsMenu(true);
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.hoge, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return super.onOptionsItemSelected(item);
    }
}
10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10