私は2つの断片(MyFirstFragment
およびMySecondFragment
)を有する活性(MyActivity
)を有する。私は2つのフラグメントに対応するスクリーンをに同じ正確なツールバーを表示するようにしたい:ただ1つの項目(それをFoo
と呼ぶ)で 'ホーム'ボタン( '')と右上のメニュー。異なる断片の異なるツールバーの動作...どのように?
唯一の違いは、Foo
をクリックしたときの動作です。 (私がMyFirstFragment
にいて、私がFoo
を押すと、トーストを表示したいときに、私はMySecondFragment
のAlertDialogを開きたいと思っています。
このには、ベスト・インプリメンテーションがありますか? MainActivity.java
の中にツールバーを定義することはできますが、各フラグメントのJavaファイルには2つの異なる動作を設定できますか?どうやって?
私はいくつかのコードを追加します、ここで私はしばらくの間、私のMyActivity.java
内部のツールバーを定義しています方法は次のとおりです。
@Override
protected void onCreate(Bundle savedInstanceState) {
// [...]
Toolbar tb = (Toolbar) findViewById(R.id.toolbar_my);
setSupportActionBar(tb);
if (getSupportActionBar() != null)
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
tb.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onBackPressed(); //goes to the previous fragment
}
});
// [...]
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.foo:
// do something
return true;
default:
return false;
}
}