Benennung meiner Anwendung in Android

73

Ich glaube, ich werde senil, weil ich überzeugt war, dass Sie diesen Teil des Manifests ausfüllen mussten, um Ihrer Bewerbung einen Namen zu geben:

<application android:icon="@drawable/icon"  android:label="MyApplicationName">

Aus einem Grund, den ich nicht verstehe, erhält meine Anwendung den Namen meiner ersten Aktivität, in die ich Daten lade. Daher heißt sie "Laden" und wird im Manifest wie folgt definiert:

<activity android:name="AccueilSplash" android:label="Loading">

Irgendeine Idee warum das so ist?

Sephy
quelle
1
Schauen Sie sich auch diese Frage an und erläutern Sie, wie Sie in der Anwendungsschublade einen anderen Namen für Ihre Anwendung als den Aktivitätstitel haben. stackoverflow.com/questions/3488664/…
Neocy

Antworten:

85

Der Launcher zeigt tatsächlich android:labelund android:iconfür Aktivitäten an, die deklarieren

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

Das Anwendungsetikett nützt also nichts.

yanchenko
quelle
44
Tatsächlich wird das Anwendungsetikett verwendet, wenn Ihre Aktivität selbst kein Etikett hat. Mein Vorschlag ist, in Ihren Anwendungen immer eine Bezeichnung und ein Symbol festzulegen (dies wird beispielsweise bei der Verwaltung von Apps angezeigt) und die Bezeichnung oder das Symbol nur für Aktivitäten festzulegen, die sich von der Gesamtanwendung unterscheiden müssen.
Hackbod
1
Richtig, wenn ich einen richtigen Namen für meine App haben möchte, muss ich mein erstes Aktivitätslabel festlegen ... Das habe ich mir gedacht. Thx
Sephy
2
Oder Sie können einfach das Etikett für die erste Aktivität löschen und das Anwendungsetikett verwenden.
Shim
3
Ich denke, das ist die wirkliche Lösung
Vivek Todi
Wenn android: label im Anwendungs-Tag und seinen Aktivitäten nicht definiert ist, wird der Paketname in der Titelleiste der Aktivität abgerufen. Definieren Sie android: label immer in Ihrem Anwendungs-Tag.
Arun Kumar
12

Es ist ein bereits bekanntes Problem des Tools (ich nehme an, Sie verwenden Eclipse). Google Group - Android-Entwickler .

Die Anwendung und die erste Aktivität haben denselben Namen wie im android:labelFeld des <activity>Elements angegeben.

Wenn Sie verschiedene Titel für den Launcher in der App-Liste und der ersten Aktivität verwenden möchten, können Sie zwischen folgenden Optionen wählen:

1.a) Legen Sie nur den Anwendungsnamen im Manifest fest.

<application
        android:label="@string/app_name"
        ... >

und nicht android:label="@string/title_first_activity" für die erste Aktivität angeben . Es wird das Anwendungsetikett erben.

ODER

1.b) Legen Sie den Anwendungsnamen im android:labelFeld der ersten Aktivität im Manifest fest.

 <activity
            android:label="@string/app_name"
            ... >
            <intent-filter>
                  <action android:name="android.intent.action.MAIN" />
                  <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
 </activity>

Der <application>Artikel wird das gleiche Label des teilen <activity>Artikels, ob Sie einen Wert für die angeben <application>‚s android:labelFeld oder nicht.

Der nächste Schritt ist:

2) Legen Sie den Titel für die erste Aktivität zur Laufzeit in der FirstActivity.class fest

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_login);
        setTitle(R.string.title_activity_login);
        //TODO: insert the rest of the code
}

Auf diese Weise ändert Ihre erste Aktivität ihren Titel einige Momente nachdem er auf dem Bildschirm Ihres Telefons angezeigt wird.

Re MiDa
quelle
Außerdem unter Erklären des Namens einer Android-App erklärt.
Dan Dascalescu
Danke Kumpel. Gute Lösung
Amilab
2

Beziehen Sie sich beim Ausführen der Anwendung auf den Titel oben auf dem Bildschirm? Wenn ja, zeigt diese Titelleiste die Bezeichnung der aktuellen Aktivität, von der ich glaube.

Matt Swanson
quelle
Ja, ich weiß, dass dieser Titel oben in jeder Aktivität vom Label benannt werden kann, wie oben in meinem Manifest definiert. Aber ich spreche vom Namen der Anwendung. Eigentlich ist es der Name, der direkt unter dem Symbol der Anwendung auf dem Desktop des Telefons
angezeigt wird
4
Nach einigen Tests konnte ich es nur mit einer externen Zeichenfolge für das Anwendungsetikett zum Laufen bringen. <application android: icon = "@ drawable / icon" android: label = "AnyStringHere"> Würde keine Änderung ergeben. Jedoch <application android: icon = "@ drawable / icon" android: label = "@ string / app_name"> würde zeigen, worauf ich "app_name" in der strings.xml gesetzt habe
Matt Swanson