Objectといっても広すぎるので、Fragmentを生成するテンプレートにします。
Objectのテンプレートは
[SDK_ROOT]/tools/templates/other配下にあります。
ここにFragmentという名前のテンプレートを作成します。
(なんでよく使うFragmentのテンプレートが最初から無いんだろう(^_^;))
templates配下のフォルダ構成です。
template.xml
<?xml version="1.0"?> <template format="1" revision="1" name="New Fragment" description="Creates a new fragment class"> <dependency name="android-support-v4" revision="8" /> <parameter id="className" name="Class Name" type="string" constraints="class|unique|nonempty" default="MyFragment" /> <globals file="globals.xml.ftl" /> <execute file="recipe.xml.ftl" /> </template>今回はFragmentなのでSupport Libraryをインポートします。
recipe.xml.ftl
<?xml version="1.0"?> <recipe> <instantiate from="src/app_package/Fragment.java.ftl" to="${srcOut}/${className}.java" /> </recipe>globals.xml.ftl
<?xml version="1.0"?> <globals> <global id="srcOut" value="src/${slashedPackageName(packageName)}" /> </globals>Fragment.java.ftl
package ${packageName}; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class ${className} extends Fragment { @Override public void onAttach(Activity activity) { // TODO 自動生成されたメソッド・スタブ super.onAttach(activity); } @Override public void onCreate(Bundle savedInstanceState) { // TODO 自動生成されたメソッド・スタブ super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO 自動生成されたメソッド・スタブ return super.onCreateView(inflater, container, savedInstanceState); } @Override public void onActivityCreated(Bundle savedInstanceState) { // TODO 自動生成されたメソッド・スタブ super.onActivityCreated(savedInstanceState); } @Override public void onStart() { // TODO 自動生成されたメソッド・スタブ super.onStart(); } @Override public void onResume() { // TODO 自動生成されたメソッド・スタブ super.onResume(); } @Override public void onPause() { // TODO 自動生成されたメソッド・スタブ super.onPause(); } @Override public void onStop() { // TODO 自動生成されたメソッド・スタブ super.onStop(); } @Override public void onDestroyView() { // TODO 自動生成されたメソッド・スタブ super.onDestroyView(); } @Override public void onDestroy() { // TODO 自動生成されたメソッド・スタブ super.onDestroy(); } @Override public void onDetach() { // TODO 自動生成されたメソッド・スタブ super.onDetach(); } }空のFragmentを生成します。FragmentのライフサイクルはActivityより多くてよく忘れるのでライフサイクル順にOverrrideさせてます。
手抜きですがこれで完成です。(手の込んだやつは追々...)
あとはActivityと同様にEclipseから以下の手順で追加できます。
[ファイル]→[新規]→[その他]→[Android]→[Android オブジェクト]
Create Android ObjectでFragmentを選択し、Class Nameを入力したら完了です。
これでFragmentを生成することができました。
一応作成したのを置いておきます。Fragment.zip
これで一通りのテンプレート作成は終了です。Projectのテンプレートは現在1つしか作れないため最小構成になると思いますが、ActivityとFragmentは実際に使う場合、標準のLoginActivityなどのように用途に合わせて作成するとより便利になります。
...といっても個人で作るのは限界があるので、Googleか誰かがテンプレートの共有サイト(システム)を作ってくれないかなぁ...と[壁]_・)チラッ
0 件のコメント:
コメントを投稿