2013-02-20 6 views
9

Ich habe also eine Android-App mit einem generierten Login-Bildschirm (den Sie direkt aus Eclipse erstellen können). Das funktioniert. Das Problem ist das: Ich habe den Anmeldebildschirm als Launcher-Aktivität festgelegt. Das funktioniert. Leider wird die App dann als Label-Parameter der Login-Aktivität aufgerufen. Das heißt, der android: label Wert der Anwendung wird einfach ignoriert.App-Name in Anwendungsetikett einstellen funktioniert nicht

Hier ist mein Code als meine Frage recht vage klingt:

<application 
      android:allowBackup="true" 
      android:icon="@drawable/ic_launcher" 
      android:label="@string/app_name" <!-- the app name i want it to have --> 
      android:theme="@style/AppTheme" > 
      <activity 
       android:name="com.test.testytest.MainActivity" 
       android:configChanges="orientation" 
       android:label="@string/app_name" > 

      </activity> 

<!-- some more activities --> 

      <activity 
       android:name="com.test.testytest.LoginActivity" 
       android:label="@string/title_activity_login" <!-- the name the app is called in the drawer etc. --> 
       android:windowSoftInputMode="adjustResize|stateVisible" > 
       <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
      </activity> 
    </application> 

strings.xml:

<string name="app_name">Testy Test!</string> 

strings_activity_login:

<string name="title_activity_login">Sign in</string> 

Wenn ich die Zeichenfolge der Anmeldung Aktivität ändern zu app_name ändert sich auch der Name der App. Aber ich bin mir ziemlich sicher, dass die App wie in Android definiert werden sollte: label in

Hoffe, Sie können mir helfen oder weisen Sie mich auf meinen Fehler (vielleicht bin ich nur ein kleines Detail fehlt).

Ein wenig Edit: Ich möchte nicht das Etikett meiner Login-Aktivität ändern, da es "Login" bleiben soll. Und es sollte auch die erste Aktivität bleiben, die aufgerufen wird. Aber der App Name in der Schublade sollte der sein, der in definiert ist.

Antwort

6

Dank Geobits:

Hier ist die Lösung How to set different label for launcher rather than activity title?

Lösung gefunden!

Anscheinend kann der "intent-filter" ein label-Attribut haben. Wenn es nicht vorhanden ist das Label wird von der übergeordneten Komponente geerbt (entweder Aktivität oder Anwendung). Wenn Sie dies verwenden, können Sie eine Beschriftung für das Launcher-Symbol festlegen, während die Aktivität weiterhin über einen eigenen Titel verfügt.

http://developer.android.com/guide/topics/manifest/intent-filter-element.html

android: label = "@ Zeichenfolge/title_home_activity"
android: icon = "@ ziehbar/Symbol">

+2

mir nicht danken Sie, danken Mark Renouf. Wenn es für Sie funktioniert, sollten Sie [seine Antwort] upvote (http://stackoverflow.com/a/7250902/752320). – Geobits

+0

Das hat mein Problem behoben. Klare Erklärung war wirklich hilfreich, danke! – Panda4Man