Android 使用后退按钮时更改标题
Android change title when using back button
我的activity:
TextView title;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Overview overview = new Overview();
setContentView(R.layout.activity_second);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.mycontainer, overview)
.commit();
}
Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar);
//Some more code
title = (TextView) toolbar.findViewById(R.id.screentitle);
title.setText("Overzicht");
}
@Override
public boolean onNavigationItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.nav_menu_overview:
title.setText("Overzicht");
getSupportFragmentManager().beginTransaction().replace(R.id.mycontainer, new Overview()).addToBackStack(null)
.commit();
break;
case R.id.nav_menu_favourites:
title.setText("Favorieten");
getSupportFragmentManager().beginTransaction().replace(R.id.mycontainer, new Favourites()).addToBackStack(null)
.commit();
break;
case R.id.nav_menu_profile:
title.setText("Profiel");
getSupportFragmentManager().beginTransaction().replace(R.id.mycontainer, new Profile()).addToBackStack(null)
.commit();
break;
}
所以,现在,如果我使用我的菜单更改片段,标题就会更改。但是,如果我使用 android 后退按钮,标题不会变回。如何在使用后退按钮时将标题改回?
将 activity 标题更改代码放入 activity 的 onResume()
:
@Override
protected void onResume() {
Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar);
//Some more code
title = (TextView) toolbar.findViewById(R.id.screentitle);
title.setText("Overzicht");
}
您可以简单地覆盖 activity 的 onBackPressed
方法并处理该场景。
更好的方法是您可以在片段中设置标题 onViewCreated
这样无论哪个片段位于顶部都会自动设置您要设置的图块。
例如:在片段中设置标题
Toolbar toolbar= (Toolbar) getActivity().findViewById(R.id.toolbar);
toolbar.setTitle("What ever you want to set");
也不要在 onNavigationItemSelected
中设置标题它应该用于导航而不是设置标题。
我的activity:
TextView title;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Overview overview = new Overview();
setContentView(R.layout.activity_second);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.mycontainer, overview)
.commit();
}
Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar);
//Some more code
title = (TextView) toolbar.findViewById(R.id.screentitle);
title.setText("Overzicht");
}
@Override
public boolean onNavigationItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.nav_menu_overview:
title.setText("Overzicht");
getSupportFragmentManager().beginTransaction().replace(R.id.mycontainer, new Overview()).addToBackStack(null)
.commit();
break;
case R.id.nav_menu_favourites:
title.setText("Favorieten");
getSupportFragmentManager().beginTransaction().replace(R.id.mycontainer, new Favourites()).addToBackStack(null)
.commit();
break;
case R.id.nav_menu_profile:
title.setText("Profiel");
getSupportFragmentManager().beginTransaction().replace(R.id.mycontainer, new Profile()).addToBackStack(null)
.commit();
break;
}
所以,现在,如果我使用我的菜单更改片段,标题就会更改。但是,如果我使用 android 后退按钮,标题不会变回。如何在使用后退按钮时将标题改回?
将 activity 标题更改代码放入 activity 的 onResume()
:
@Override
protected void onResume() {
Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar);
//Some more code
title = (TextView) toolbar.findViewById(R.id.screentitle);
title.setText("Overzicht");
}
您可以简单地覆盖 activity 的 onBackPressed
方法并处理该场景。
更好的方法是您可以在片段中设置标题 onViewCreated
这样无论哪个片段位于顶部都会自动设置您要设置的图块。
例如:在片段中设置标题
Toolbar toolbar= (Toolbar) getActivity().findViewById(R.id.toolbar);
toolbar.setTitle("What ever you want to set");
也不要在 onNavigationItemSelected
中设置标题它应该用于导航而不是设置标题。