AndroidAnnotationsを使ったActivityの作り方
前回はAndroidAnnotationsの導入方法を紹介しました。
今回はそのアノテーションを使ったAcitivityの作り方を紹介します。
今回使うアノテーションは「@EActivity」
@EActivityの「E」とはEnhanceの略です。
Activityを便利に使うためのアノテーションという感じですね。
この@EActivityを使わずにActivityを生成しようとすると、
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
こんな感じでonCreateメソッドをオーバーライドして、レイアウトファイルをセットしますよね。
これを@EActivityを使って書き換えると、
import org.androidannotations.annotations.EActivity; @EActivity(R.layout.activity_main) public class MainActivity extends Activity { }
@EActivityの後のカッコ内にレイアウトファイルを指定するだけでOK
ただし、この時に注意しないといけないことがあります。
実はAndroidAnnotationsを適用したクラスは、そのクラスを継承した新たなクラスを生成しています。
MainActivityだったらMainActivity_のように末尾にアンダースコアがついたクラスとなります。
アプリ側で実際に使うのはMainActivity_の方なので、
<activity android:name="com.example.example_an2.MainActivity_" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
こんな感じで、AndroidManifest.xmlで指定するActivityのnameを編集する必要があります。
あと、継承したクラスを利用するのでprivate修飾子をつけたメソッドなどが使えない事になります。
この2点に気をつければ大丈夫かと思います。
@EActivityを適用したことにより他にも便利なことができるのですが、それは次回以降に回したいと思います。