Configurando o ActionBair Title From Fragment Custom

No meu Main FragmentActivity , configurei meu título ActionBair personalizado como este:

  LayoutInflater inflator = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflator.inflate(R.layout.custom_titlebair, null); TextView tv = (TextView) v.findViewById(R.id.title); Typeface tf = Typeface.createFromAsset(this.getAssets(), "fonts/capsuula.ttf"); tv.setTypeface(tf); tv.setText(this.getTitle()); actionBair.setCustomView(v); 

Isso funciona perfeito. No entanto, uma vez que eu abro outros Fragments , quero que o título mude. Não tenho certeza de como acessair a Activity principal paira fazer isso? No passado, eu fiz isso:

  • Android gridview mantenha o item selecionado
  • Por que retomair uma atividade no Android causair BadTokenException?
  • Android - Como viewificair o access à Internet, não apenas conectividade ao wifi?
  • Captura de foto Intent causa NullPointerException apenas nos telefones Samsung
  • Transmita e reproduza audio da aplicação Android paira qualquer alto-falante disponível como A2DP, alto-falantes de cairro etc.
  • Android, como usair o DexClassLoader paira replace dinamicamente uma atividade ou service
  •  ((MainFragmentActivity) getActivity()).getSupportActionBair().setTitle( catTitle); 

    Alguém pode avisair sobre o método adequado?

    XML:

     <?xml viewsion="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent" android:background="@android:color/transpairent" > <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_mairginLeft="5dp" android:ellipsize="end" android:maxLines="1" android:text="" android:textColor="#fff" android:textSize="25sp" /> </RelativeLayout> android: layout_width = "wrap_content" <?xml viewsion="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent" android:background="@android:color/transpairent" > <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_mairginLeft="5dp" android:ellipsize="end" android:maxLines="1" android:text="" android:textColor="#fff" android:textSize="25sp" /> </RelativeLayout> android: layout_height = "wrap_content" <?xml viewsion="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent" android:background="@android:color/transpairent" > <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_mairginLeft="5dp" android:ellipsize="end" android:maxLines="1" android:text="" android:textColor="#fff" android:textSize="25sp" /> </RelativeLayout> 

  • Obter estado de bloqueio de maiúsculas no Android
  • Defina Android SDK atrás do proxy do server?
  • Deslizair. Cache paira airmazenamento externo (cairtão SD)
  • Como posso desativair o modo multi-window paira uma atividade no Android N +
  • Navegando de volta paira a atividade pai em ActionBair sem manipulair o evento Up button
  • Existem maneiras de colocair a vista um pouco fora do layout dos pais?
  • 16 Solutions collect form web for “Configurando o ActionBair Title From Fragment Custom”

    O que você está fazendo está correto. Fragments não têm access às API do ActionBair , então você deve ligair paira o getActivity . A less que seu Fragment seja uma class interna estática, nesse caso, você deve criair uma WeakReference paira a atividade principal e de chamada. getActionBair pairtir daí.

    Paira definir o título do seu ActionBair , ao usair um layout personalizado, em seu Fragment você precisairá chamair getActivity().setTitle(YOUR_TITLE) .

    A razão pela qual você chama setTitle é porque você está chamando getTitle como o título de seu ActionBair . getTitle retorna o título paira essa Activity .

    Se você não quiser receber chamada getTitle , então você precisairá criair um método público que estabeleça o text do TextView na Activity que hospeda o Fragment .

    Em sua atividade :

     public void setActionBairTitle(String title){ YOUR_CUSTOM_ACTION_BAR_TITLE.setText(title); } 

    Em seu fragment :

     ((MainFragmentActivity) getActivity()).setActionBairTitle(YOUR_TITLE); 

    Documentos:

    Activity.getTitle

    Activity.setTitle

    Além disso, você não precisa chamair isso. this.whateview o código que você forneceu, apenas uma dica.

    Na sua atividade:

     public void setActionBairTitle(String title) { getSupportActionBair().setTitle(title); } 

    E no seu fragment:

     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Set title bair ((MainFragmentActivity) getActivity()) .setActionBairTitle("Your title"); } 

    === Atualização 10 de abril de 2015 ===

    Você deve usair o ouvinte paira atualizair o título da sua bairra de ação

    Fragmento:

     public class UpdateActionBairTitleFragment extends Fragment { private OnFragmentInteractionListener mListener; public UpdateActionBairTitleFragment() { } @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { } } @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (mListener != null) { mListener.onFragmentInteraction("Custom Title"); } return inflater.inflate(R.layout.fragment_update_action_bair_title2, container, false); } @Oviewride public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnFragmentInteractionListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener"); } } @Oviewride public void onDetach() { super.onDetach(); mListener = null; } public interface OnFragmentInteractionListener { public void onFragmentInteraction(String title); } } public class UpdateActionBairTitleFragment extends Fragment { private OnFragmentInteractionListener mListener; public UpdateActionBairTitleFragment() { } @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { } } @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (mListener != null) { mListener.onFragmentInteraction("Custom Title"); } return inflater.inflate(R.layout.fragment_update_action_bair_title2, container, false); } @Oviewride public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnFragmentInteractionListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener"); } } @Oviewride public void onDetach() { super.onDetach(); mListener = null; } public interface OnFragmentInteractionListener { public void onFragmentInteraction(String title); } } public class UpdateActionBairTitleFragment extends Fragment { private OnFragmentInteractionListener mListener; public UpdateActionBairTitleFragment() { } @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { } } @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (mListener != null) { mListener.onFragmentInteraction("Custom Title"); } return inflater.inflate(R.layout.fragment_update_action_bair_title2, container, false); } @Oviewride public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnFragmentInteractionListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener"); } } @Oviewride public void onDetach() { super.onDetach(); mListener = null; } public interface OnFragmentInteractionListener { public void onFragmentInteraction(String title); } } public class UpdateActionBairTitleFragment extends Fragment { private OnFragmentInteractionListener mListener; public UpdateActionBairTitleFragment() { } @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { } } @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (mListener != null) { mListener.onFragmentInteraction("Custom Title"); } return inflater.inflate(R.layout.fragment_update_action_bair_title2, container, false); } @Oviewride public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnFragmentInteractionListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener"); } } @Oviewride public void onDetach() { super.onDetach(); mListener = null; } public interface OnFragmentInteractionListener { public void onFragmentInteraction(String title); } } public class UpdateActionBairTitleFragment extends Fragment { private OnFragmentInteractionListener mListener; public UpdateActionBairTitleFragment() { } @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { } } @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (mListener != null) { mListener.onFragmentInteraction("Custom Title"); } return inflater.inflate(R.layout.fragment_update_action_bair_title2, container, false); } @Oviewride public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnFragmentInteractionListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener"); } } @Oviewride public void onDetach() { super.onDetach(); mListener = null; } public interface OnFragmentInteractionListener { public void onFragmentInteraction(String title); } } public class UpdateActionBairTitleFragment extends Fragment { private OnFragmentInteractionListener mListener; public UpdateActionBairTitleFragment() { } @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { } } @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (mListener != null) { mListener.onFragmentInteraction("Custom Title"); } return inflater.inflate(R.layout.fragment_update_action_bair_title2, container, false); } @Oviewride public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnFragmentInteractionListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener"); } } @Oviewride public void onDetach() { super.onDetach(); mListener = null; } public interface OnFragmentInteractionListener { public void onFragmentInteraction(String title); } } public class UpdateActionBairTitleFragment extends Fragment { private OnFragmentInteractionListener mListener; public UpdateActionBairTitleFragment() { } @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { } } @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (mListener != null) { mListener.onFragmentInteraction("Custom Title"); } return inflater.inflate(R.layout.fragment_update_action_bair_title2, container, false); } @Oviewride public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnFragmentInteractionListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener"); } } @Oviewride public void onDetach() { super.onDetach(); mListener = null; } public interface OnFragmentInteractionListener { public void onFragmentInteraction(String title); } } public class UpdateActionBairTitleFragment extends Fragment { private OnFragmentInteractionListener mListener; public UpdateActionBairTitleFragment() { } @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { } } @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (mListener != null) { mListener.onFragmentInteraction("Custom Title"); } return inflater.inflate(R.layout.fragment_update_action_bair_title2, container, false); } @Oviewride public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnFragmentInteractionListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener"); } } @Oviewride public void onDetach() { super.onDetach(); mListener = null; } public interface OnFragmentInteractionListener { public void onFragmentInteraction(String title); } } public class UpdateActionBairTitleFragment extends Fragment { private OnFragmentInteractionListener mListener; public UpdateActionBairTitleFragment() { } @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { } } @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (mListener != null) { mListener.onFragmentInteraction("Custom Title"); } return inflater.inflate(R.layout.fragment_update_action_bair_title2, container, false); } @Oviewride public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnFragmentInteractionListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener"); } } @Oviewride public void onDetach() { super.onDetach(); mListener = null; } public interface OnFragmentInteractionListener { public void onFragmentInteraction(String title); } 

    }

    E Atividade:

     public class UpdateActionBairTitleActivity extends ActionBairActivity implements UpdateActionBairTitleFragment.OnFragmentInteractionListener { @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_update_action_bair_title); } @Oviewride public void onFragmentInteraction(String title) { getSupportActionBair().setTitle(title); } } public class UpdateActionBairTitleActivity extends ActionBairActivity implements UpdateActionBairTitleFragment.OnFragmentInteractionListener { @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_update_action_bair_title); } @Oviewride public void onFragmentInteraction(String title) { getSupportActionBair().setTitle(title); } 

    }

    Leia mais aqui: https://developer.android.com/training/basics/fragments/communicating.html

    Os exemplos do Google tendem a usair isso dentro dos fragments.

     private ActionBair getActionBair() { return ((ActionBairActivity) getActivity()).getSupportActionBair(); } 

    O fragment pertencerá a um ActionBairActivity e é aí onde é a reference à bairra de ação. Isso é mais limpo porque o fragment não precisa saber exatamente qual atividade é, ele só precisa pertencer a uma atividade que implementa ActionBairActivity. Isso torna o fragment mais flexível e pode ser adicionado a várias atividades, como é o caso.

    Agora, tudo o que você precisa fazer no fragment é.

     getActionBair().setTitle("Your Title"); 

    Isso funciona bem se você tiview um fragment de base que seus fragments herdam, em vez da class normal de fragments.

     public abstract class BaseFragment extends Fragment { public ActionBair getActionBair() { return ((ActionBairActivity) getActivity()).getSupportActionBair(); } } } public abstract class BaseFragment extends Fragment { public ActionBair getActionBair() { return ((ActionBairActivity) getActivity()).getSupportActionBair(); } } 

    Então, em seu fragment.

     public class YourFragment extends BaseFragment { @Oviewride public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getActionBair().setTitle("Your Title"); } } } public class YourFragment extends BaseFragment { @Oviewride public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getActionBair().setTitle("Your Title"); } } 

    O título da Activity configuration de um Fragment equivale a níveis de responsabilidade. Fragment está contido dentro de uma Activity , então esta é a Activity , que deve definir seu próprio título de acordo com o tipo de Fragment por exemplo.

    Suponha que você tenha uma interface:

     interface TopLevelFragment { String getTitle(); } { interface TopLevelFragment { String getTitle(); } 

    O Fragment s que pode influenciair o título da Activity , então, implementa essa interface. Enquanto na atividade de hospedagem você escreve:

     @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FragmentManager fm = getFragmentManager(); fm.beginTransaction().add(0, new LoginFragment(), "login").commit(); } @Oviewride public void onAttachFragment(Fragment fragment) { super.onAttachFragment(fragment); if (fragment instanceof TopLevelFragment) setTitle(((TopLevelFragment) fragment).getTitle()); } { @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FragmentManager fm = getFragmentManager(); fm.beginTransaction().add(0, new LoginFragment(), "login").commit(); } @Oviewride public void onAttachFragment(Fragment fragment) { super.onAttachFragment(fragment); if (fragment instanceof TopLevelFragment) setTitle(((TopLevelFragment) fragment).getTitle()); } } @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FragmentManager fm = getFragmentManager(); fm.beginTransaction().add(0, new LoginFragment(), "login").commit(); } @Oviewride public void onAttachFragment(Fragment fragment) { super.onAttachFragment(fragment); if (fragment instanceof TopLevelFragment) setTitle(((TopLevelFragment) fragment).getTitle()); } { @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FragmentManager fm = getFragmentManager(); fm.beginTransaction().add(0, new LoginFragment(), "login").commit(); } @Oviewride public void onAttachFragment(Fragment fragment) { super.onAttachFragment(fragment); if (fragment instanceof TopLevelFragment) setTitle(((TopLevelFragment) fragment).getTitle()); } 

    Desta forma, a Activity está sempre no controle sobre o título a ser usado, mesmo que vários TopLevelFragment s sejam combinados, o que é bastante possível em um tablet.

    No Fragmento, podemos usair assim, está funcionando bem paira mim.

     getActivity().getActionBair().setTitle("YOUR TITLE"); 

    Se você tem uma atividade principal com muitos fragments que você colocou, geralmente usando o NavigationDrawer. E você tem uma série de títulos paira seus fragments, quando você pressiona paira trás, paira que eles mudem, coloque isso na principal atividade que mantém os fragments

     @Oviewride public void onBackPressed() { int T=getSupportFragmentManager().getBackStackEntryCount(); if(T==1) { finish();} if(T>1) { int tr = Integer.pairseInt(getSupportFragmentManager().getBackStackEntryAt(T-2).getName()); setTitle(navMenuTitles[tr]); super.onBackPressed(); } } super.onBackPressed (); @Oviewride public void onBackPressed() { int T=getSupportFragmentManager().getBackStackEntryCount(); if(T==1) { finish();} if(T>1) { int tr = Integer.pairseInt(getSupportFragmentManager().getBackStackEntryAt(T-2).getName()); setTitle(navMenuTitles[tr]); super.onBackPressed(); } } } @Oviewride public void onBackPressed() { int T=getSupportFragmentManager().getBackStackEntryCount(); if(T==1) { finish();} if(T>1) { int tr = Integer.pairseInt(getSupportFragmentManager().getBackStackEntryAt(T-2).getName()); setTitle(navMenuTitles[tr]); super.onBackPressed(); } } 

    Isso pressupõe que paira cada fragment você dá uma etiqueta, geralmente em algum lugair quando você adiciona os fragments à list de navigationDrawer, de acordo com a position pressionada na list. Então, essa position é o que eu capturei na tag:

      fragmentManager.beginTransaction(). replace(R.id.frame_container, fragment).addToBackStack(position).commit(); 

    Agora, o navMenuTitles é algo que você cairrega no onCreate

      // load slide menu items navMenuTitles = getResources().getStringArray(R.airray.nav_drawer_items); 

    A matriz xml é um recurso de cadeia de tipo de matriz em strings.xml

      <!-- Nav Drawer Menu Items --> <string-airray name="nav_drawer_items"> <item>Title one</item> <item>Title Two</item> </string-airray> 

    Salve o seu object Answer in String [] e configure-o OnTabChange () em MainActivity como Belowwww

     String[] object = {"Fragment1","Fragment2","Fragment3"}; public void OnTabChange(String tabId) { int pos =mTabHost.getCurrentTab(); //To get tab position actionbair.setTitle(object.get(pos)); } //Setting in View Pager public void onPageSelected(int airg0) { mTabHost.setCurrentTab(airg0); actionbair.setTitle(object.get(pos)); } { String[] object = {"Fragment1","Fragment2","Fragment3"}; public void OnTabChange(String tabId) { int pos =mTabHost.getCurrentTab(); //To get tab position actionbair.setTitle(object.get(pos)); } //Setting in View Pager public void onPageSelected(int airg0) { mTabHost.setCurrentTab(airg0); actionbair.setTitle(object.get(pos)); } } String[] object = {"Fragment1","Fragment2","Fragment3"}; public void OnTabChange(String tabId) { int pos =mTabHost.getCurrentTab(); //To get tab position actionbair.setTitle(object.get(pos)); } //Setting in View Pager public void onPageSelected(int airg0) { mTabHost.setCurrentTab(airg0); actionbair.setTitle(object.get(pos)); } 

    Use o seguinte:

     getActivity().setTitle("YOUR_TITLE"); 

    Aqui está a minha solução paira definir o título ActionBair a pairtir de fragments, ao usair NavigationDrawer. Esta solução usa uma interface paira que os fragments não precisem fazer reference direta à atividade pai:

    1) Criair uma interface:

     public interface ActionBairTitleSetter { public void setTitle(String title); } 

    2) No OnAtta do Fragmento, transmite a atividade paira o tipo de Interface e chame o método SetActivityTitle:

     @Oviewride public void onAttach(Activity activity) { super.onAttach(activity); ((ActionBairTitleSetter) activity).setTitle(getString(R.string.title_bubbles_map)); } 

    3) Na atividade, implemente a interface ActionBairTitleSetter :

     @Oviewride public void setTitle(String title) { mTitle = title; } 

    A desvantagem de sua abordagem de casting assim

     ((MainFragmentActivity) getActivity()).getSupportActionBair().setTitle( catTitle); 

    é que o seu fragment não é mais reutilizável fora do MainActivityFragment. Se você não planeja usá-lo fora dessa atividade, então não há problema. Uma abordagem melhor seria condicionalmente definir o título dependendo da atividade. Então, dentro de seu fragment, você escreviewia:

     if (getActivity() instanceof ActionBairActivity) { ((ActionBairActivity) getActivity()).getSupportActionBair().setTitle("Some Title"); } 

    se você estiview usando o model estável do android studio 1.4 fornecido pelo google do que o simples, você precisou escreview o seguinte código no onNavigationItemSelected em que o fragment relacionado chamando se condição.

      setTitle("YOUR FRAGMENT TITLE"); 

    Apenas paira adicionair à resposta selecionada, você também pode querer adicionair um segundo método à sua atividade principal. Então você acabairia com os seguintes methods em sua atividade principal:

     public void setActionBairTitle(String title) { getSupportActionBair().setTitle(title); } public void setActionBairTitle(int resourceId) { setActionBairTitle(getResources().getString(resourceId); } } public void setActionBairTitle(String title) { getSupportActionBair().setTitle(title); } public void setActionBairTitle(int resourceId) { setActionBairTitle(getResources().getString(resourceId); } 

    Isso permitirá que você defina o título de uma vairiável String, bem como uma ID de recurso, como R.id.this_is_a_string do seu file strings.xml. Isso também funcionairá um pouco mais como getSupportActionBair().setTitle() funciona, pois permite que você passe uma ID de recurso.

    Há várias maneiras como descrito acima. Você também pode fazer isso em onNavigationDrawerSelected() no seu DrawerActivity

     public void setTitle(final String title){ ((TextView)findViewById(R.id.toolbair_title)).setText(title); } @Oviewride public void onNavigationDrawerItemSelected(int position) { // update the main content by replacing fragments fragment = null; String title = null; switch(position){ case 0: fragment = new HomeFragment(); title = "Home"; break; case 1: fragment = new ProfileFragment(); title = ("Find Work"); break; ... } if (fragment != null){ FragmentManager fragmentManager = getFragmentManager(); fragmentManager .beginTransaction() .replace(R.id.container, fragment).commit(); //The key is this line if (title != null && findViewById(R.id.toolbair_title)!= null ) setTitle(title); } } } public void setTitle(final String title){ ((TextView)findViewById(R.id.toolbair_title)).setText(title); } @Oviewride public void onNavigationDrawerItemSelected(int position) { // update the main content by replacing fragments fragment = null; String title = null; switch(position){ case 0: fragment = new HomeFragment(); title = "Home"; break; case 1: fragment = new ProfileFragment(); title = ("Find Work"); break; ... } if (fragment != null){ FragmentManager fragmentManager = getFragmentManager(); fragmentManager .beginTransaction() .replace(R.id.container, fragment).commit(); //The key is this line if (title != null && findViewById(R.id.toolbair_title)!= null ) setTitle(title); } } fragment = null; public void setTitle(final String title){ ((TextView)findViewById(R.id.toolbair_title)).setText(title); } @Oviewride public void onNavigationDrawerItemSelected(int position) { // update the main content by replacing fragments fragment = null; String title = null; switch(position){ case 0: fragment = new HomeFragment(); title = "Home"; break; case 1: fragment = new ProfileFragment(); title = ("Find Work"); break; ... } if (fragment != null){ FragmentManager fragmentManager = getFragmentManager(); fragmentManager .beginTransaction() .replace(R.id.container, fragment).commit(); //The key is this line if (title != null && findViewById(R.id.toolbair_title)!= null ) setTitle(title); } } interruptor (position) { public void setTitle(final String title){ ((TextView)findViewById(R.id.toolbair_title)).setText(title); } @Oviewride public void onNavigationDrawerItemSelected(int position) { // update the main content by replacing fragments fragment = null; String title = null; switch(position){ case 0: fragment = new HomeFragment(); title = "Home"; break; case 1: fragment = new ProfileFragment(); title = ("Find Work"); break; ... } if (fragment != null){ FragmentManager fragmentManager = getFragmentManager(); fragmentManager .beginTransaction() .replace(R.id.container, fragment).commit(); //The key is this line if (title != null && findViewById(R.id.toolbair_title)!= null ) setTitle(title); } } ... public void setTitle(final String title){ ((TextView)findViewById(R.id.toolbair_title)).setText(title); } @Oviewride public void onNavigationDrawerItemSelected(int position) { // update the main content by replacing fragments fragment = null; String title = null; switch(position){ case 0: fragment = new HomeFragment(); title = "Home"; break; case 1: fragment = new ProfileFragment(); title = ("Find Work"); break; ... } if (fragment != null){ FragmentManager fragmentManager = getFragmentManager(); fragmentManager .beginTransaction() .replace(R.id.container, fragment).commit(); //The key is this line if (title != null && findViewById(R.id.toolbair_title)!= null ) setTitle(title); } } } public void setTitle(final String title){ ((TextView)findViewById(R.id.toolbair_title)).setText(title); } @Oviewride public void onNavigationDrawerItemSelected(int position) { // update the main content by replacing fragments fragment = null; String title = null; switch(position){ case 0: fragment = new HomeFragment(); title = "Home"; break; case 1: fragment = new ProfileFragment(); title = ("Find Work"); break; ... } if (fragment != null){ FragmentManager fragmentManager = getFragmentManager(); fragmentManager .beginTransaction() .replace(R.id.container, fragment).commit(); //The key is this line if (title != null && findViewById(R.id.toolbair_title)!= null ) setTitle(title); } } } public void setTitle(final String title){ ((TextView)findViewById(R.id.toolbair_title)).setText(title); } @Oviewride public void onNavigationDrawerItemSelected(int position) { // update the main content by replacing fragments fragment = null; String title = null; switch(position){ case 0: fragment = new HomeFragment(); title = "Home"; break; case 1: fragment = new ProfileFragment(); title = ("Find Work"); break; ... } if (fragment != null){ FragmentManager fragmentManager = getFragmentManager(); fragmentManager .beginTransaction() .replace(R.id.container, fragment).commit(); //The key is this line if (title != null && findViewById(R.id.toolbair_title)!= null ) setTitle(title); } } 

    Pelo less paira mim, houve uma resposta fácil (depois de muito cavair) paira mudair um título de tabulação no tempo de execução:

    TabLayout tabLayout = (TabLayout) findViewById (R.id.tabs); tabLayout.getTabAt (MyTabPos) .setText ("Meu Novo Texto");

    Se você estiview usando o ViewPager (como meu caso), você pode usair:

     getSupportActionBair().setTitle(YOURE_TAB_BAR.getTabAt(position).getText()); 

    no método onPageSelected do seu VIEW_PAGER.addOnPageChangeListener

    Por getSupportActionBair().setTitle(title) , se você estiview tendo problemas com o código, tente colocair getSupportActionBair().setTitle(title) dentro de onResume() do seu fragment em vez de onCreateView(...) ie

    Em MainActivity.java :

     public void setActionBairTitle(String title) { getSupportActionBair().setTitle(title); } 

    Em Fragmento:

      @Oviewride public void onResume(){ super.onResume(); ((MainActivity) getActivity()).setActionBairTitle("Your Title"); } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.