2016-08-01 2 views
0

私の活動をバック使用している場合:Androidの変更タイトルボタン

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; 
    } 

だから、今、タイトルは私がフラグメントを変更するには、私のメニューを使用している場合は変更されます。しかし、アンドロイドのバックボタンを使用すると、タイトルは元に戻りません。戻るボタンを使用するたびにタイトルを元に戻すにはどうすればよいですか?

+0

1つのアクティビティと3つのフラグメントしかありませんか? – Shaishav

+0

このリンクを参照してくださいhttp://stackoverflow.com/questions/24161160/setuservisiblehint-called-before-oncreateview-in-fragment –

答えて

1

あなたは、単に活動のonBackPressedメソッドをオーバーライドして、シナリオを扱うことができます。

より良いアプローチは、フラグメントonViewCreatedの内部にタイトルを設定することができます。そのため、どのフラグメントが上にあるかによって、設定したいタイルが自動的に設定されます。

例:フラグメント

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

内のタイトルを設定するには、また、そのタイトルを設定していないナビゲートするために使用されなければならないonNavigationItemSelectedにタイトルを設定しないでください。

0

活動の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"); 

} 
関連する問題