Frage

es nur Aktuell zeigt den Namen der Anwendung und ich mag es etwas benutzerdefinierten angezeigt werden und für jeden Bildschirm in meiner Anwendung unterschiedlich sein.

. Zum Beispiel: mein Home-Bildschirm sagen könnte ‚Seite1‘ in der Aktionsleiste während eines anderen Aktivität, dass der App schaltet könnte haben ‚page2‘ in dieser Bildschirmen Aktionsleiste

War es hilfreich?

Lösung

Update: Neueste ActionBar (Titel) Muster:

FYI, ActionBar wurde in API-Ebene 11. ActionBar eingeführt ist eine Fenster-Funktion an der Spitze der Aktivität, die den Aktivität Titel , Navigations-Modi und andere interaktive Elemente wie Suche.

kann angezeigt werden

Ich erinnere mich genau über Titelleiste Customizing und es konsequent durch die Anwendung zu machen. So kann ich einen Vergleich mit den früheren Tagen machen und einige der Vorteile der Verwendung von ActionBar auflisten kann:

  1. Es bietet den Benutzern eine vertraute Benutzeroberfläche über mehrere Anwendungen hinweg, dass das System ordnungsgemäß passt sich für verschiedene Bildschirmkonfigurationen.
  2. Entwickler brauchen nicht viel Code zu schreiben, um die Aktivität Titel Anzeigen, Icons und Navigations-Modi, weil ActionBar ist bereits fertig mit Top-Level-Abstraktion.

Zum Beispiel:

eingeben Bild Beschreibung hier

eingeben Bild Beschreibung hier

=> Normal Art und Weise,

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

=> Customizing Aktionsleiste

Zum Beispiel:

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

}

Styling der Aktionsleiste:

Die ActionBar bietet grundlegende und vertraut aussieht, Navigations-Modi und andere schnelle Aktionen auszuführen. Aber das bedeutet nicht, dass es das gleiche in jeder App aussieht. Sie können es wie pro Ihre Benutzeroberfläche und Design-Anforderungen anpassen. Sie müssen nur definieren und Schreib Stile und Themen.

Lesen Sie mehr unter: Styling der Aktionsleiste

Und wenn Sie Stile für ActionBar erzeugen dann diese Style-Generator Tool kann Ihnen helfen.

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

Alte: Früher Tage:

=> Normal Art und Weise,

können Sie den Titel jedes Bildschirms ändern (das heißt Aktivität) durch ihre Einstellung Android:label

   <activity android:name=".Hello_World"
                  android:label="This is the Hello World Application">
   </activity>

=> Custom - Titel - bar


Aber wenn Sie wollen anpassen Titelleiste in Ihrem eigenen Weg, das heißt Want to put Image icon and custom-text , dann der folgende Code funktioniert bei mir:

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

titlebar.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="400dp" 
  android:layout_height="fill_parent"
  android:orientation="horizontal">

<ImageView android:id="@+id/ImageView01" 
            android:layout_width="57dp" 
            android:layout_height="wrap_content"
            android:background="@drawable/icon1"/>

<TextView 

  android:id="@+id/myTitle" 
  android:text="This is my new title" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  android:textColor="@color/titletextcolor"
   />
</LinearLayout>

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

Die strings.xml Datei definiert unter dem values Ordner.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, Set_Text_TitleBar!</string>
    <string name="app_name">Set_Text_TitleBar</string>
    <color name="titlebackgroundcolor">#3232CD</color>
    <color name="titletextcolor">#FFFF00</color>
</resources>

Andere Tipps

Sie können die Beschriftung für jede Aktivität in Ihrer Manifest-Datei definiert werden.

Eine normale Definition einer Aktivität sieht wie folgt aus:

<activity
     android:name=".ui.myactivity"
     android:label="@string/Title Text" />

Wo Titeltext sollte durch die id einer Zeichenfolge-Ressource für diese Aktivität ersetzt werden.

Sie können auch den Titeltext von Code festgelegt, wenn Sie es dynamisch festlegen möchten.

setTitle(address.getCity());

Mit dieser Zeile der Titel in die Stadt einer bestimmten Adresse in der oncreate Methode meiner Tätigkeit eingestellt ist.

Sie können Ihren Titel programmatisch definieren mit setTitle in Ihrem Activity, diese Methode entweder eine String oder eine ID in Ihrer values/strings.xml-Datei definiert annehmen kann. Beispiel:

public class YourActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        setTitle(R.string.your_title);
        setContentView(R.layout.main);

    }
}

Wir können den ActionBar Titel in einem von zwei Arten ändern:

  1. Im Manifest. In der Manifest-Datei, stellen Sie das Etikett jede Aktivität

    android:label="@string/TitleWhichYouWantToDisplay"
    
  2. In Code. In Code, rufen Sie die setTitle () Methode mit einem String oder die ID String als Argument

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

Innerhalb Activity.onCreate () Callback oder in einem anderen Ort, an dem Sie ändern Titel müssen:

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

versuchen, tun dies ...

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

es funktioniert für mich

Bit wenig älter, aber hatte das gleiche Problem. Ich habe es wie folgt aus:

strings.xml

<string name="title_awesome_app">My Awesome App</string>

und stellen Sie sicher, setzen Sie diese in Ihrem AndroidManifest.xml :

<activity
            ...
            android:label="@string/title_awesome_app" >
            ...
</activity>

es ist einfach und Sie müssen sich keine Sorgen machen über null Verweise und andere Sachen.

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

Der einfachste Weg, um die Aktionsleiste Namen zu ändern ist zum AndroidManifest.xml gehen und diesen Code eingeben.

<activity android:name=".MainActivity"
    android:label="Your Label> </activity>

Sie fügen Sie einfach diesen Code in das onCreate Verfahren.

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

Weitere Informationen finden Sie auf diesen Link:

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

Der beste Weg, um die Aktionsleiste Namen zu ändern ist zum AndroidManifest.xml gehen und diesen Code eingeben.

<activity android:name=".YourActivity"
        android:label="NameYouWantToDisplay> </activity>

Der einfachste Weg ist this.setTitle("...") anrufen, wenn Sie in der Tätigkeit sind. Und wenn Sie in einem Fragmente sind, nur getActivity().setTitle("...") nennen;

Auf diese Weise lassen Sie den Titel jederzeit ändern, keine Notwendigkeit, sie vor setContentView(R.layout.activity_test) zu nennen;

Für zukünftige Entwickler, die verwenden AndroidX und Navigation architektonische Komponente .

Statt die Einstellung des Symbolleiste Titels eine der Lösungen unter Verwendung von oben, das sein kann sehr schmerzhaft , wenn Sie es dynamisch auf einem hinteren Stapelwechsel einstellen mögen, können Sie set a Platzhalter für die Titel des Fragments in dem Navigationsgraphen wie folgt aus:

<fragment
    android:id="@+id/some_fragment"
    android:name="package.SomeFragment"
    android:label="Hello {placeholder}"
    tools:layout="@layout/fragment_some">
    <argument
        android:name="placeholder"
        app:argType="string" />
</fragment>

Der Platzhalter Wert bereitgestellt werden, um die Verwendung von FragmentDirections (über das Aktionsmethode).

Es wird dann im Titel und zeigt wie Hello World ersetzt (wenn placeholder = "World").

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top