我已经检查了应用程序的清单,在应用程序启动程序下,它显示为活动名称而不是其应用程序名称?为什么会这样。我有另一个应用程序,当我安装它时,有5个条目,每个条目对应于应用程序中的每个活动,而实际上应该只有一个名称,应用程序的名称?所以当我启动时,启动列表中有5个同名的应用程序。这些都是以应用程序命名的,但每个活动都有一个。这可能是什么原因呢?
发布于 2011-03-23 04:34:26
对于第一个问题,您应该知道,在启动应用程序上没有标签的情况下,名称来自应用程序标记的android:label
属性中设置的默认标签:
<application android:name="ApiDemosApplication"
android:label="@string/activity_sample_code"
android:icon="@drawable/app_sample_code">
如果Activity
有标签,则将使用该标签。
对于第二个问题,在清单中,您的所有活动很可能都指定了一个带有android.intent.category.LAUNCHER操作的意图过滤器。例如:
<activity android:name="ApiDemos">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
如果您在所有活动上都有这样的意图过滤器标签,那么除了要在启动时启动的Activity
之外,您应该删除所有其他活动上的意图过滤器标签。如果此Activity
有标签,则该标签将与启动器图标一起显示。
截至2019/01/03在27+接口上,LAUNCHER
类别的第一个活动似乎将启动,其标签将与应用程序图标关联,因此可能没有严格的必要删除所有多余的意图过滤器,但我无论如何都会这样做,因为这可能会导致混淆。
发布于 2014-07-08 01:47:33
要使应用程序名称(显示在应用程序图标下的名称)和当您点击应用程序图标时启动的活动具有不同的名称,一种方法是在活动的onCreate()方法中显式设置不同的字符串,如下所示:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Do your thing
// ... bla bla bla
getActionBar().setTitle(R.string.activity_title);
}
希望这能有所帮助!
发布于 2013-05-08 17:06:16
当您通过Eclipse创建活动时,活动中的android:label属性会在AndroidManifest.xml中自动设置为"@string/ your _ Activity _name“。添加意图过滤器为此活动提供启动器,您的启动器将获得与您的活动相同的标签android:label。
如果你想用你的应用程序名来标记启动器,你应该将活动android:label改为类似于"@string/app_ name“的内容。
https://stackoverflow.com/questions/5397405
复制相似问题