Ich versuche einige Dinge auf der ActionBar in Android zu tun.
Ich habe bereits neue Elemente auf der rechten Seite der Aktionsleiste hinzugefügt.
Wie kann ich die linke Seite der Aktionsleiste ändern? Ich möchte das Symbol und den Text ändern und in der Aktionsleiste für die anderen Bildschirme einen "Zurück-Button" hinzufügen
Dies ist sehr einfach zu bewerkstelligen
Wenn Sie den Code ändern möchten, rufen Sie Folgendes an:
setTitle("My new title");
getActionBar().setIcon(R.drawable.my_icon);
Und stell die Werte auf was auch immer du magst.
Oder in der Android-Manifest-XML-Datei:
<activity Android:name=".MyActivity"
Android:icon="@drawable/my_icon"
Android:label="My new title" />
So aktivieren Sie den Zurück-Button in Ihrer App:
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
Der Code sollte sich alle in Ihrer onCreate
befinden, sodass die Änderung der Beschriftung/des Symbols für den Benutzer transparent ist. In Wirklichkeit kann er jedoch während des gesamten Lebenszyklus der Aktivität aufgerufen werden.
Um ein einzelnes Symbol für alle Aktionsleisten nutzbar zu machen, können Sie dies in Ihrem Android-Manifest tun.
<application
Android:logo="@drawable/Image">
...
</application>
Sie müssen nur diese 3 Codezeilen hinzufügen. Ersetzen Sie das Symbol durch Ihr eigenes Symbol. Wenn Sie Symbole erzeugen möchten, verwenden Sie this
getSupportActionBar().setHomeAsUpIndicator(R.drawable.icon_back_arrow);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
Wenn Sie den Titel der Aktionsleiste ändern möchten, geben Sie einfach den folgenden Code für 1 Zeile in onCreate () Ihrer Aktivität ein
getActionBar().setTitle("Test");
In Android 5.0 halten die Richtlinien für Materialdesign die Verwendung von icon in actionBar ab
um es zu aktivieren, fügen Sie den folgenden Code hinzu
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.mipmap.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);
kredit geht an den Autor dieses Artikels
Sie können das Symbol in Ihrem Ordner ändern, indem Sie den gewünschten Zeichenordnern das gewünschte Symbol hinzufügen und diese Zeile in der Datei AndroidManifest.xml ändern:
Android:icon="@drawable/ic_launcher"
um mit dem Namen Ihres Symbols übereinzustimmen. Oder setzen Sie Ihr Icon als ic_launcher, wenn es sich um dasselbe Icon handelt. Fügen Sie alle Zeichenfolgen hinzu, die mit denen in Ihrer Datei res/values / strings.xml übereinstimmen. Ändern Sie dann erneut in Ihrer AndroidManifest.xml-Datei diese Zeile:
Android:label="@string/app_name"
zu was auch immer die Saite in ihrem. Sie müssen dies für die gesamte Anwendung und für die gewünschten Aktivitäten tun, aber die Zeilen sind die gleichen.
Hoffe das hilft.
Dafür gibt es zwei Möglichkeiten: XML oder Java. Siehe hier: So ändern Sie den Text in der Aktionsleiste
So:
XML:
<activity Android:name=".Hello_World"
Android:label="This is the Hello World Application">
</activity>
Java:
public class TitleBar extends Activity {
/** Called when the activity is first created. */
@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);
}
}
}
Für gesetzten Titel :
getActionBar().setTitle("Title");
Für gesetztes Symbol :
getActionBar().setIcon(R.drawable.YOUR_ICON_NAME);
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle(getString(R.string.titolo));
actionBar.setIcon(R.mipmap.ic_launcher);
actionBar.setDisplayShowHomeEnabled(true);
Ich habe den folgenden Aufruf in onNavigationItemSelected
verwendet:
HomeActivity.this.setTitle(item.getTitle());
Fügen Sie den folgenden Code innerhalb einer onCreate-Funktion in Ihre Aktivität ein.
setTitle("NewName");
Gehen Sie zum Manifest, in dem Sie die Aktivität ändern möchten. Aktionsleiste Titelname und schreiben Sie Android: label = "Titelname"
Diese Arbeit für mich:
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeAsUpIndicator(R.mipmap.baseline_dehaze_white_24);
Der Titel der Aktionsleiste verwendet standardmäßig die Bezeichnung der aktuellen Aktivität. Sie können sie jedoch auch programmgesteuert über ActionBar.setTitle()
einstellen.
Lesen Sie den Abschnitt "Verwenden des App-Symbols für die Navigation" im Action Bar-Entwicklerhandbuch , um die Tastenfunktionalität "Zurück" (genauer "Up") zu implementieren.
Um das Symbol zu ändern, behandelt das Handbuch auch das. Kurz gesagt, die Aktionsleiste zeigt das in Android:icon
gelieferte Bild im application
- oder activity
-Element Ihres Manifests an, sofern vorhanden. In der Regel wird ein Anwendungssymbol (in allen erforderlichen Dichten) mit dem Namen ic_launcher.png
erstellt und in den drawable-*
-Verzeichnissen abgelegt.
Gehen Sie zu AndroidManifest.xml file. <application>
-Tag suchen Dort können Sie ein Attribut sehen
Android:label="@string/app_name"
Gehen Sie nun zu res> values> strings.xml
Ändere das
<string name="app_name">MainActivity</string>
zu
<string name="app_name">Your Desired Name</string>
Beispiel
AndroidManifest.xml
<application
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name"
Android:roundIcon="@mipmap/ic_launcher_round"
Android:supportsRtl="true"
Android:theme="@style/AppTheme">
<activity
Android:name=".MainActivity"
>
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity Android:name=".SubmitForm">
</activity>
</application>
strings.xml
<resources>
<string name="app_name">Your Desired Name</string>
<string name="action_settings">Settings</string>
</resources>
Ich habe non-static method setTitle(CharSequence) cannot be referenced from a static context
Fehler erhalten, weil ich setTitle()
in der statischen Klasse PlaceholderFragment verwendet habe. Ich habe es mit getActivity().getActionBar().setTitle("new title");
gelöst.