2015-02-08 22 views
5

pierwsze chciałbym coś wyjaśnić, więc chłopaki mogą lepiej zrozumieć mój problem:Zmień ActionBar tytuł za pomocą Fragmenty

  • używam actionbar.
  • Mam połączenie Fragment Ulubione, w których zapisuję niektóre kontakty jako ulubione.
  • Po kliknięciu jednego kontaktu przenosi mnie do innego fragmentu i wstaw numer kontaktowy do pliku editText.
  • Nowy fragment to transfery połączeń.

Mój problem polega na tym, że gdy użytkownik kliknie kontakt, który przenosi mnie do innego fragmentu, ale tytuł na pasku akcji nadal z ulubionym tytułem, a nie nowym, jak mogę to zmienić tytuł?

Próbowałem już użyć setTitle w metodzie kliknięcia, ale nadal nie działa.

Dziękuję bardzo! Przepraszamy za mój zły angielski!

+1

możesz Zatwierdź moją odpowiedź, proszę? –

+0

@NOT_A_PROGRAMMER done! Dzięki! –

+0

Dziękujemy @Jesion Duran –

Odpowiedz

30

W swojej działalności:

public void setActionBarTitle(String title) { 
    getSupportActionBar().setTitle(title); 
} 

I w swoim fragmencie (można go umieścić onCreate lub onResume):

public void onResume(){ 
     super.onResume(); 

    // Set title bar 
    ((MainFragmentActivity) getActivity()) 
      .setActionBarTitle("Your title"); 

} 
+0

Działa jak urok. –

+0

@NOT_A_PROGRAMMER Ci "REALLY_A_PROGRAMMER" zaoszczędziłeś mój dzień .. :) Thankssss – MashukKhan

+0

Świetna próbka Nie zdawałem sobie sprawy, że onResume może zastąpić moją Tittle – skryshtafovych

-2

wypróbuj to w metodzie onCreateView na nowym fragmencie.

ActionBar actionbar = getActivity().getActionBar(); 
    actionbar.setTitle(getResources().getString(R.string.NewTittle)); 
+0

Cześć dzięki za odpowiedź, ale nie zadziałało! –

9

W swojej fragmentu

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 

    getActivity().setTitle("Team B"); 

    View rootView = inflater.inflate(R.layout.fragment_team_b, container, false); 

    return rootView; 
} 
Powiązane problemy