7

私の主な活動には、アクションバーがあります。新しいアクティビティを開始しても、これを表示したままにするにはどうすればよいですか?

これを機能させるには、新しいアクティビティでメイン アクティビティを拡張する必要がありますか?

4

3 に答える 3

6

アクションバーに要素を配置するメソッドを宣言するonCreateOptionMenuと、メインアクティビティ (A) で、そのメソッドを再宣言せずに A を拡張する他のすべてのアクティビティは、A の同じアクションバーを持ちます。

于 2012-08-02T14:25:10.830 に答える
5

Android メニュー オプションは、画面のアクション バーから選択するアクションやその他のオプションをユーザーに提供します。これらのアクションの一部は、アプリケーションのすべてのアクティビティに共通であるため、アクティビティごとに作成する代わりに、Activity クラスを拡張してすべてのメニュー処理を行う BaseActivity を作成できます。次に、アプリケーション アクティビティの基本アクティビティ クラスを拡張して、同じメニュー オプションを取得できます。

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends BaseActivity implements OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button nextActivity = (Button) findViewById(R.id.nextActivity);
        nextActivity.setOnClickListener(this);

    }
}

これがBaseActivityクラスです

import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class BaseActivity extends Activity{

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  getMenuInflater().inflate(R.menu.common_menu, menu);
  return true;
 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {

  switch (item.getItemId()) {

  // Do Code Here 

  default:
   return super.onOptionsItemSelected(item);
  }

 }

}

お役に立てば幸いです。

于 2014-09-18T13:19:52.143 に答える
0

ここで説明したのと同じ実装パターン (継承/構成) を使用できます

アプリ全体でグローバルな「検索機能」

検索機能用。onCreateOptionMenuメソッドで説明したことを実行するだけで、各アクティビティに同じ退屈な 3 行のコードを記述する必要なく、すべてのアクティビティで同じものを使用できます。

于 2012-08-02T14:28:19.633 に答える