应用列表中显示的app_name错误

Mul*_*ard 1 android

我在字符串中将应用程序的名称定义为"MyApp",并将清单文件中的应用程序名称引用到该字符串:

strings.xml中:

...
<string name="app_name">MyApp</string>
....
Run Code Online (Sandbox Code Playgroud)

的Manifest.xml:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
Run Code Online (Sandbox Code Playgroud)

但是,当我现在在我的设备上安装应用程序时,应用程序浏览器以"登录"名称显示我的应用程序,这实际上是我的MainActivity的标题:

<activity
        android:name="de.my_project.activities.LoginActivity"
        android:label="@string/title_activity_login"
        android:launchMode="singleTask" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

strings.xml中:

...
<string name="title_activity_login">Login</string>
...
Run Code Online (Sandbox Code Playgroud)

当我进入我的设置卸载应用程序时,会显示正确的名称"MyApp".为什么android在我的应用程序浏览器中显示错误的名称?

Ama*_*tam 8

每个应用程序都可以有多个活动来处理意图动作MAIN和类别LAUNCHER.每个活动都意味着进入应用程序的入口点.由于可以创建不同的入口点,因此可以为这些入口点创建不同的名称.通过android:label在活动中定义,您将在应用程序菜单中设置应用程序的名称.

<activity
    android:name="de.my_project.activities.LoginActivity"
    android:label="@string/title_activity_login"
    android:launchMode="singleTask" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

LoginActivity,在此代码段中覆盖应用程序标签并使用@string/title_activity_login.

从Manifest中删除标签,它应该可以正常工作.否则使用@string/app_name.

<activity
    android:name="de.my_project.activities.LoginActivity"
    android:label="@string/app_name"
    android:launchMode="singleTask" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

您可以轻松地title从活动内部设置活动.