Wie ändere ich den Text in der Aktionsleiste?

Momentan wird nur der Name der Anwendung angezeigt, und ich möchte, dass sie etwas benutzerdefiniertes anzeigt und für jeden Bildschirm in meiner App anders ist.

Beispiel: Mein Startbildschirm könnte in der Aktionsleiste “Seite 1” anzeigen, während eine andere Aktivität, zu der die App wechselt, in dieser Aktionsleiste “Seite 2” haben könnte.

Update: Aktuelles ActionBar (Titel) Muster:

FYI, ActionBar wurde in API Level 11 eingeführt. ActionBar ist eine Fensterfunktion am Anfang der Aktivität, die den Aktivitätstitel , Navigationsmodi und andere interaktive Elemente wie die Suche anzeigen kann.

Ich erinnere mich genau daran, die Titelleiste anzupassen und sie durch die Anwendung konsistent zu machen. So kann ich einen Vergleich mit den früheren Tagen machen und einige der Vorteile der Verwendung von ActionBar auflisten:

  1. Es bietet Ihren Benutzern eine vertraute Benutzeroberfläche für alle Anwendungen, die das System für unterschiedliche Bildschirmkonfigurationen anpasst.
  2. Entwickler müssen nicht viel Code schreiben, um den Aktivitätstitel, die Symbole und die Navigationsmodi anzuzeigen, da ActionBar bereits mit Abstraktion auf oberster Ebene bereit ist.

Beispielsweise:

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

=> Normaler Weg,

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

=> Anpassen der Aktionsleiste,

Beispielsweise:

 @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 Ihnen grundlegende und vertraute functionen, Navigationsmodi und andere schnelle Aktionen. Aber das bedeutet nicht, dass es in jeder App gleich aussieht. Sie können es gemäß Ihren Benutzeroberflächen- und Designanforderungen anpassen. Sie müssen nur Stile und Themen definieren und schreiben.

Lesen Sie mehr unter: Styling der Aktionsleiste

Und wenn Sie Stile für ActionBar generieren möchten, kann Ihnen dieses Style Generator Tool helfen.

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

Alt: Frühere Tage:

=> Normaler Weg,

Sie können den Titel jedes Bildschirms (z. B. Aktivität) ändern, indem Sie die Android:label

    

=> Benutzerdefiniert – Titel – Leiste


Aber wenn Sie Titelleiste auf Ihre eigene Weise anpassen möchten, dh Want to put Image icon and custom-text einfügen möchten, funktioniert der folgende Code für mich:

main.xml

 < ?xml version="1.0" encoding="utf-8"?>  

titlebar.xml

 < ?xml version="1.0" encoding="utf-8"?>     

Titelbar.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 Datei strings.xml ist im Ordner values definiert.

 < ?xml version="1.0" encoding="utf-8"?>  Hello World, Set_Text_TitleBar! Set_Text_TitleBar #3232CD #FFFF00  

Sie können das Label für jede Aktivität in Ihrer Manifestdatei definieren.

Eine normale Definition einer Aktivität sieht folgendermaßen aus:

  

Der Titeltext sollte durch die ID einer Zeichenfolgenressource für diese Aktivität ersetzt werden.

Sie können den Titeltext auch aus Code auswählen, wenn Sie ihn dynamisch festlegen möchten.

 setTitle(address.getCity()); 

Mit dieser Zeile wird der Titel auf die Stadt einer bestimmten Adresse in der Oncreate-Methode meiner Aktivität gesetzt.

Sie können Ihren Titel programmatisch mit setTitle innerhalb Ihrer Activity . Diese Methode kann entweder eine setTitle oder eine ID akzeptieren, die in Ihrer Datei values/strings.xml ist. 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 auf zwei Arten ändern:

  1. Im Manifest: Legen Sie in der Manifestdatei das Label für jede Aktivität fest.

     android:label="@string/TitleWhichYouWantToDisplay" 
  2. Im Code: Rufen Sie im Code die setTitle () -Methode mit einem String oder der ID von String als Argument auf.

     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 von Activity.onCreate () – Callback oder an einer anderen Stelle, an der Sie den Titel ändern müssen:

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

versuche das …

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

Für mich geht das

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

Etwas älter aber hatte das gleiche Problem. Ich habe es so gemacht:

strings.xml

My Awesome App

und stelle sicher, dass du dies in deiner AndroidManifest.xml festlegst :

  ...  

Es ist einfach und Sie müssen sich nicht um Null-Referenzen und andere Dinge kümmern.

Die einfachste Möglichkeit, den Namen der Aktionsleiste zu ändern, besteht darin, zur AndroidManifest.xml zu gehen und diesen Code einzugeben.

 
		      	

Sie fügen diesen Code nur in der onCreate Methode hinzu.

 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 unter folgendem Link:

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

Der einfachste Weg besteht darin, this.setTitle (“…”) aufzurufen, wenn Sie in der Aktivität sind. und wenn Sie in einem Fragment sind, rufen Sie einfach getActivity (). setTitle (“…”);

Auf diese Weise können Sie den Titel jederzeit ändern, ohne ihn vor setContentView aufrufen zu müssen (R.layout.activity_test);