活动名称而不是在测试设备上的所有应用程序列表中显示的应用程

时间:2013-07-08 13:04:16

标签: android android-intent android-activity

我最近更改了我的应用的启动活动 - 将清单中的intent-filter(action.MAIN和category.LAUNCHER)从旧活动移动到新活动 - 从那时起新活动名称而不是应用程序名称显示在我的测试手机上的所有应用程序列表中(运行Android版本2.3.6)。在'管理应用程序'列表仍显示应用名称。

这不是什么大不了的事 - 因为我总是可以创建一个新的应用程序,默认情况下使用新的启动器活动 - 但是可以灵活地在同一个项目中动态更改启动器活动。基本上除了剪切和粘贴清单中的intent-filter之外还有其他东西需要做什么才能更改默认的启动器活动?也就是说,假设这是导致问题的原因。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

来自answerAndroid Documentation

在Manifest中的application元素上使用android:label="@string/activity_sample_code"。然后,这将确定显示给用户的字符串作为应用程序名称。

更新:应用程序级别标签将为所有子元素提供默认值。如果覆盖活动上的标签,则该标签优先。您可以再次使用intent过滤器上的标签覆盖该活动标签!关于icons and labels的Android文档中的部分涵盖了很好的内容:

  

在每种情况下,包含元素中设置的图标和标签都将成为所有容器子元素的默认图标和标签设置。

对于简单的应用程序,应用程序上的标签就足够了。

TL; DR:对于启动器,按此顺序首先找到的标签获胜: LAUNCHER-IntentFilter,与Launcher IntentFilter的活动,应用程序

答案 1 :(得分:0)

只需从新选择的启动器Activity中删除以下标记:

android:label="xyz"

删除此标记可以解决问题,是的,您只需复制粘贴这些标记即可随时更改启动器Activity。 您也可以将此标记添加到您的应用程序标记中。

答案 2 :(得分:0)

你可以看到这个link

答案太棒了:

  android:name=".ui.HomeActivity"
  android:label="@string/title_home_activity"
  android:icon="@drawable/icon">
  <intent-filter android:label="@string/app_`enter code here`name">
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
</activity>