0
我有一个活动(MyActivity
)与两个片段(MyFirstFragment
和MySecondFragment
)。我希望屏幕对应的两个片段显示相同的确切工具栏:只有'主页'按钮('')和右上角的菜单,只有一个项目(我们称之为Foo
)。不同的工具栏行为在不同的片段中......怎么样?
它们之间的唯一区别应该是点击Foo
时的行为。 (只是为了举一个例子,当我在MyFirstFragment
和我按Foo
我希望它显示一个吐司,而当我在MySecondFragment
我希望它打开一个AlertDialog)。
您认为可能是这个的最佳实施方案? 我可以在MainActivity.java
里面定义工具栏,但是在每个片段java文件中设置两个不同的行为吗?怎么样?
我会添加一些代码,这里是我如何定义我的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;
}
}