Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android在使用后退按钮时更改标题_Android_Back - Fatal编程技术网

Android在使用后退按钮时更改标题

Android在使用后退按钮时更改标题,android,back,Android,Back,我的活动: TextView title; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Overview overview = new Overview(); setContentView(R.layout.activity_second); if (savedInstanceState == null) {

我的活动:

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;
    }
@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");

}

所以,现在,如果我使用菜单来更改片段,标题就会更改。但是,如果我使用安卓backbutton,标题不会被更改回来。每当使用“后退”按钮时,如何将标题更改回原来的位置?

将活动标题更改代码放入活动的
onResume()

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;
    }
@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");

}

您可以简单地覆盖活动的
onBackPressed
方法并处理场景

更好的方法是,您可以在片段
onViewCreated
中设置标题,这样无论哪个片段位于顶部,都会自动设置要设置的平铺

在片段内设置标题

Toolbar toolbar= (Toolbar) getActivity().findViewById(R.id.toolbar);
toolbar.setTitle("What ever you want to set");

另外,不要在
onNavigationItemSelected
its中设置标题,而不要设置标题。

您是否只有一个活动和3个片段?请参阅此链接