2012-10-05 11 views
14

Quiero colocar un elemento en la barra de acciones que solo tenga texto. Estoy usando ActionBarSherlock. Cómo puedo hacer esto. Uno es definir un icono con un texto. No preferiría hacer eso. ¿Es posible tener un elemento de texto de mis recursos de cadena?Artículo de Android ActionBar con solo texto

+1

¿Qué has intentado hasta ahora? – Dharmendra

Respuesta

19

Simplemente no definen el campo

android:icon 

en el menu.xml de ese elemento.

+4

Esto no funciona. El texto no se muestra en la barra de acciones. – BruceHill

+0

Usted tiene que poner su icono nulo: 'code' ' code' –

10

Sólo cuenta de esto, asegúrese de agregar androide: showAsAction = "siempre"

<item 
    android:id="@+id/menu_item" 
    android:showAsAction="always" 
    android:title="@string/menu_title" /> 
+2

Tomó mucho tiempo llegar a esta solución simple. – shehzy

+0

Tome nota, si utiliza la biblioteca de AppCompat, use '' 'aplicación: showAsAction =" siempre "' '' en lugar de '' 'android: showAsAction =" always "' '' –

5

Para referencia futura, he encontrado que hay que definir el atributo showAsAction tanto en el http://schemas.android.com/apk/res/android espacio de nombres y la http://schemas.android.com/apk/res-auto espacio de nombres, para proporcionar compatibilidad con diferentes versiones de Android. De este modo, el archivo menu.xml debe verse como:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     xmlns:tools="http://schemas.android.com/tools" 
     tools:context="net.taptools.android.sportshistory.PlayerProfileActivity" > 
<item android:id="@+id/action_settings" 
    android:title="Statistics" 
    app:showAsAction="always" 
    android:showAsAction="always"/> 
</menu> 
0

si quieren que sea un botón puede crear un menú:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     xmlns:tools="http://schemas.android.com/tools" 
     tools:context="net.taptools.android.sportshistory.PlayerProfileActivity" > 
<item android:id="@+id/action_settings" 
    android:title="Statistics" 
    app:showAsAction="always" 
    android:showAsAction="always"/> 
</menu> 

Pero en caso de que quería sólo TextView puede utilizar :

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
    TextView tv = new TextView(this); 
      tv.setText(getString(R.string.matchmacking)+" "); 
      tv.setTextColor(getResources().getColor(R.color.WHITE)); 
      tv.setOnClickListener(this); 
      tv.setPadding(5, 0, 5, 0); 
      tv.setTypeface(null, Typeface.BOLD); 
      tv.setTextSize(14); 
      menu.add(0, FILTER_ID, 1, R.string.matchmacking).setActionView(tv).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 
} 

Esto sólo hace un TextView.

Cuestiones relacionadas