はじめに
いろいろ便利な機能があるんですね。最近は Tips of the Day を3回に1回くらい読むようになりました。
導入すれば新たに Fragment なんかを作った時の、あーめんどくさ感が減る気がします。もちろん Fragment 以外にも使えます。
コードの統一感も増して、一石二鳥なので、チームでも個人でも導入する価値ありかと思います!
ちなみに control + o でオーバライドメソッドを簡単に作ることもできます。このショートカットも覚えておくと便利だと思います。
使い方
- [Android Studio]-[Preferences]-[File and Code Templates]の順に選択
- Templates タブで + ボタンをクリック
- テンプレ名を入力し、テンプレコードを入力して保存する
Description エリアに変数の使い方の説明があります。
- クラスの新規作成時に、プルダウンから作成したテンプレを選んで実行
超簡単ですね!
テンプレサンプル
詳細な説明は割愛します。
サンプル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);
}
}