Android には、メニューを定義するためにオーバーライドできる便利なメソッドがいくつか用意されていることを知っています。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, AIS, 0, "Activity Inventory Sheet").setIcon(android.R.drawable.ic_menu_upload);
// ...
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
Intent i;
switch (item.getItemId()) {
case AIS: i = new Intent(this, ActivityInventorySheet.class);
startActivity(i);
return true;
// ...
}
return false;
}
このメニューを Android アプリケーションの各 Activity と ListActivity で共有したいと考えています。これは、ユーザーがクリックするだけでアプリケーションのすべての部分にジャンプできるように、各 (リスト) アクティビティに標準メニューを用意するためのものです。
現在、これを実現する最も簡単な方法は、アプリケーションのすべての (リスト) アクティビティで両方のメソッドをコピー アンド ペーストすることです。私は書かれたコードのこの冗長性が好きではありません:)
サブクラス化は合理的な選択ですか? ListActivity の 1 つのサブクラス化がうまく機能しないことは既に確認しました (データベースからオブジェクトを取得するスレッドが問題を引き起こしています)。アクティビティを介してメニューを共有する他の方法はありますか?
ありがとう