2012-10-05 8 views
14

Ich möchte ein Element in der Aktionsleiste platzieren, die nur Text enthält. Ich verwende ActionBarSherlock. Wie kann ich das machen. Man definiert ein Icon mit einem Text. Ich würde das lieber nicht machen. Ist es möglich, ein Textelement aus meinen String-Ressourcen zu haben?Android ActionBar Element mit nur Text

+1

Was haben Sie bisher versucht? – Dharmendra

Antwort

19

definiert einfach nicht das

android:icon 

Feld in der menu.xml für dieses Element.

+4

Das funktioniert nicht. Der Text wird nicht in der Aktionsleiste angezeigt. – BruceHill

+0

Sie haben Ihr Symbol null setzen: 'code' ' code' –

10

Genau dies herausgefunden, stellen Sie sicher, android hinzuzufügen: showAsAction = „always“

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

Es hat viel Zeit gebraucht, um diese einfache Lösung zu erreichen. – shehzy

+0

Beachten Sie, wenn Sie die AppCompat-Bibliothek verwenden, verwenden Sie '' 'app: showAsAction =" immer "' '' anstelle von '' 'android: showAsAction =" always "' '' –

5

Für die Zukunft, fand ich, dass man das showAsAction Attribut sowohl im http://schemas.android.com/apk/res/android Namespace und dem http://schemas.android.com/apk/res-auto Namespace definieren müssen, um die Kompatibilität mit verschiedenen Android-Versionen zu gewährleisten. Daher sollten Sie Ihre menu.xml Datei wie folgt aussehen:

<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

, wenn Sie es wünschen, einen Knopf sein Sie ein Menü erstellen:

<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> 

Aber falls Sie wollten nur ein TextView können Sie verwenden :

@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); 
} 

Dies macht nur TextView.