ventanas una todas recientemente pestañas pestaña nueva las guardadas google eliminar deseada configurar como chrome cerrar celular borrar automáticamente abrir abiertas android tabs android-3.0-honeycomb android-actionbar settext

android - todas - Cambiar el texto de la pestaña en una pestaña de la barra de acciones de Honeycomb después de haber sido creado



eliminar todas las ventanas abiertas (2)

Intento utilizar Android Honeycomb creando una aplicación de edición de texto simple que utiliza la barra de acciones y las pestañas. Me encuentro con un problema molesto sin embargo. Después de que se creó una pestaña y se agregó a la barra de acción, me gustaría cambiar el texto que se muestra en la pestaña. Pensé que usando el siguiente método, ActionBar.Tab.setText (CharSequence arg0) haría el truco, sin embargo, no parece estar cambiando el texto visible. Lo que es más extraño aún es que si tuviera que llamar a getText (), devuelve el texto al que cambié la pestaña. A continuación hay un fragmento de código que estoy usando para cambiar el texto de la pestaña:

int currentTabIndex = ab.getSelectedNavigationIndex(); currentTabTitle = (String) ab.getTabAt(currentTabIndex).getText(); // just to check ab.getTabAt(currentTabIndex).setText(fileName); // change tab text currentTabTitle = (String) ab.getTabAt(currentTabIndex).getText(); // just to check

Realmente estoy perdido y he buscado en todas partes. Agradecería mucho cualquier consejo que alguien tenga. Gracias por tu tiempo.


Es una especie de tonto y agregar y eliminar pestañas es una mala idea porque si usas fragmentos terminarás eliminando y volviendo a agregar tu fragmento con su pestaña. Usar una vista personalizada parece funcionar mucho mejor y una bonificación adicional te ofrece una mayor personalización.

A continuación, le mostramos cómo crear una pestaña con una vista personalizada que se vea y se comporte de forma idéntica a las predeterminadas:

ActionBar bar = getActionBar(); TabListener tabListener = new TabListener() { @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub } }; Tab tab1 = bar.newTab() .setText("Info") .setTabListener(tabListener) .setCustomView(makeTabDummy("Info", android.R.drawable.ic_menu_info_details)); bar.addTab(tab1);

y aquí está la vista simulada perfecta de píxeles:

private TextView makeTabDummy(String text, int icon) { TextView tv = new TextView(this); tv.setText(text); tv.setTextColor(0xffffffff); tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); tv.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT)); tv.setCompoundDrawablesWithIntrinsicBounds(icon, 0, 0, 0); tv.setGravity(Gravity.CENTER); return tv; }

Desde aquí podemos cambiar iconos y texto en la pestaña sin ningún problema. Ejemplo:

TextView tv = (TextView) tab1.getCustomView(); tv.setText("change the text!"); tv.setCompoundDrawablesWithIntrinsicBounds(android.R.drawable.btn_star_big_on, 0, 0, 0);

... y todo funciona como debería


Intente quitar la pestaña y volver a agregarla en el índice deseado después de cambiar el texto. (Es un error. La vista asociada no se actualiza cuando configura el texto después de agregarlo).