Cómo cambiar el texto en la barra de acciones

Actualmente solo muestra el nombre de la aplicación y quiero que muestre algo personalizado y sea diferente para cada pantalla en mi aplicación.

Por ejemplo: mi pantalla de inicio podría decir “página1” en la barra de acciones, mientras que otra actividad a la que la aplicación puede cambiar podría tener “página2” en la barra de acciones de esa pantalla.

Actualización: último patrón de ActionBar (título):

Para su información, se introdujo ActionBar en API Nivel 11. ActionBar es una función de ventana en la parte superior de la actividad que puede mostrar el título de la actividad , los modos de navegación y otros elementos interactivos, como la búsqueda.

Recuerdo exactamente sobre la personalización de la barra de título y su coherencia a través de la aplicación. Así que puedo hacer una comparación con los días anteriores y puedo enumerar algunas de las ventajas de usar ActionBar:

  1. Ofrece a sus usuarios una interfaz familiar en todas las aplicaciones que el sistema adapta con gracia para diferentes configuraciones de pantalla.
  2. Los desarrolladores no necesitan escribir mucho código para mostrar el Título de la actividad, los íconos y los modos de navegación porque ActionBar ya está listo con la abstracción de nivel superior.

Por ejemplo:

enter image description here

enter image description here

=> Manera normal,

getActionBar().setTitle("Hello world App"); getSupportActionBar().setTitle("Hello world App"); // provide compatibility to all the versions 

=> Personalización de la barra de acciones

Por ejemplo:

 @Override public void setActionBar(String heading) { // TODO Auto-generated method stub com.actionbarsherlock.app.ActionBar actionBar = getSupportActionBar(); actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(false); actionBar.setDisplayShowHomeEnabled(false); actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.title_bar_gray))); actionBar.setTitle(heading); actionBar.show(); } 

Diseñando la barra de acción:

El ActionBar le proporciona aspectos básicos y familiares, modos de navegación y otras acciones rápidas para realizar. Pero eso no significa que se ve igual en todas las aplicaciones. Puede personalizarlo según su UI y los requisitos de diseño. Solo tienes que definir y escribir estilos y temas.

Lea más en: Diseñando la barra de acción

Y si desea generar estilos para ActionBar, esta herramienta Style Generator puede ayudarlo.

=============================================== ============================

Viejo: días anteriores:

=> Manera normal,

puede cambiar el título de cada pantalla (es decir, Actividad) configurando su Android:label

    

=> Personalizado – Título – barra


Pero si desea Personalizar la barra de título a su manera, es decir, Want to put Image icon and custom-text , entonces el siguiente código funciona para mí:

main.xml

   

titlebar.xml

      

TitleBar.java

 public class TitleBar extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); if (customTitleSupported) { getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar); } final TextView myTitleText = (TextView) findViewById(R.id.myTitle); if (myTitleText != null) { myTitleText.setText("NEW TITLE"); // user can also set color using "Color" and then // "Color value constant" // myTitleText.setBackgroundColor(Color.GREEN); } } } 

strings.xml

El archivo strings.xml se define en la carpeta de values .

   Hello World, Set_Text_TitleBar! Set_Text_TitleBar #3232CD #FFFF00  

Puede definir la etiqueta para cada actividad en su archivo de manifiesto.

Una definición normal de una actividad se ve así:

  

Donde el texto del título debe reemplazarse por el ID de un recurso de cadena para esta actividad.

También puede establecer el texto del título desde el código si desea establecerlo dinámicamente.

 setTitle(address.getCity()); 

con esta línea, el título se establece en la ciudad de una dirección específica en el método oncreate de mi actividad.

Puede definir su título programáticamente utilizando setTitle dentro de su Activity , este método puede aceptar una String o una ID definida en su archivo values/strings.xml . Ejemplo:

 public class YourActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { setTitle(R.string.your_title); setContentView(R.layout.main); } } 

Podemos cambiar el título de ActionBar de una de estas dos formas:

  1. En el Manifiesto: en el archivo de manifiesto, establezca la etiqueta de cada Actividad.

     android:label="@string/TitleWhichYouWantToDisplay" 
  2. En el código: en el código, llame al método setTitle () con una cadena o el id de String como argumento.

     public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { setTitle(R.string.TitleWhichYouWantToDisplay); // OR You can also use the line below // setTitle("MyTitle") setContentView(R.layout.activity_main); } } 

Devolución de llamada dentro de Activity.onCreate () o en el otro lugar donde necesita cambiar el título:

 getSupportActionBar().setTitle("Whatever title"); 

intenta hacer esto …

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setTitle(String.format(your_format_string, your_personal_text_to_display)); setContentView(R.layout.your_layout); ... ... } 

esto funciona para mi

 getActionBar().setTitle("edit your text"); 

Un poco más viejo pero tenía el mismo problema. Lo hice así:

strings.xml

My Awesome App

y asegúrate de configurar esto en tu AndroidManifest.xml :

  ...  

es fácil y no tiene que preocuparse por referencias nulas y otras cosas.

La forma más fácil de cambiar el nombre de la barra de acción es ir a AndroidManifest.xml y escribir este código.

 
		      	

Simplemente agrega este código en el método onCreate .

 setTitle("new title"); 
 ActionBar ab = getActionBar(); TextView tv = new TextView(getApplicationContext()); LayoutParams lp = new RelativeLayout.LayoutParams( LayoutParams.MATCH_PARENT, // Width of TextView LayoutParams.WRAP_CONTENT); tv.setLayoutParams(lp); tv.setTextColor(Color.RED); ab.setCustomView(tv); 

Para más información, consulte este enlace:

http://android–code.blogspot.in/2015/09/android-how-to-change-actionbar-title_21.html

La forma más fácil es llamar this.setTitle (“…”) si estás en la actividad. y si está en un fragmento, simplemente llame a getActivity (). setTitle (“…”);

de esta manera le permitirá cambiar el título en cualquier momento, sin necesidad de llamarlo antes de setContentView (R.layout.activity_test);