Java Android:以编程方式更改应用程序标签
如何更改应用程序标签以更改android中java代码显示的应用程序名称? 我指的是:Java Android:以编程方式更改应用程序标签,java,android,manifest,Java,Android,Manifest,如何更改应用程序标签以更改android中java代码显示的应用程序名称? 我指的是: <application android:icon="@drawable/icon" android:label="@string/app_name"> 在Android清单中 有没有办法更新strings.xml文件中的值?目前还不可能。它是AndroidManifest.xml文件中的固定字符串,在运行时无法更改。任何感兴趣的人: 但不清楚它是更改了“应用程序标签”(即应用程序列表中图标
<application android:icon="@drawable/icon" android:label="@string/app_name">
在Android清单中
有没有办法更新strings.xml文件中的值?目前还不可能。它是AndroidManifest.xml文件中的固定字符串,在运行时无法更改。任何感兴趣的人:
但不清楚它是更改了“应用程序标签”(即应用程序列表中图标的名称)还是仅更改了窗口标题。在活动中,我尝试了
this.setTitle("your text");
它成功了。我希望这是一个通用的解决方案应用程序的android:label是一个固定的资源引用器 但是这个引用下的字符串可能有多个值,这取决于配置限定符名称(值en、-large、-land等),根据
.如果要扩展固件,实际上可以通过更改IconCache.java文件并使其显示带有手机内部值的字符串来完成 例如,如果您希望SIM卡工具包显示运营商的名称,您可以这样做
但对于常规应用程序,正如人们所说的,它目前是不可能的。正如史密斯先生所说,这是不可能的 但您可以使用多个
活动别名
,可以动态启用/禁用这些活动,并指向同一个targetActivity。因此,为应用程序名称创建选择器-让用户选择一个并通过packageManager
启用ActivityAlias
:
ComponentName componentName = new ComponentName(context, context.getPackageName() + "." + aliasName);
context.getPackageManager().setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
要隐藏旧别名,请使用带有以下标志的相同代码:COMPONENT\u ENABLED\u STATE\u DISABLED
您还可以在启用别名后,直接向主启动器添加快捷方式。sow中介绍了很多方法。使用
您可以将应用程序图标和名称更改为您预定义的几个
在Mannifest.xml
<activity android:name="package.name.MainActivity"
android:screenOrientation="portrait"
android:label="@string/app_name"
android:theme="@style/CustomTheme"
android:launchMode="singleTask">
<intent-filter>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity-alias android:label="@string/app_name_default"
android:icon="@drawable/icon_default"
android:name=".MainActivity-Default"
android:enabled="true"
android:targetActivity=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
<activity-alias android:label="@string/app_name_flavor_one"
android:icon="@drawable/icon_flavor_one"
android:name=".MainActivity-Flavor-One"
android:enabled="false"
android:targetActivity=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
请记住,在
setContentView()
编写此命令之前,您必须跟踪在启动器活动中一次只启用一个别名
setTitle("Your Title");
我不知道这是怎么可能的,但它肯定会起作用。您想更改标题栏吗???为什么要通过编程更改名称?它不是一直都应该被修复吗?@blessem我还想更改应用程序名。事实上,我想在标题栏上附加一些值。@hanry有什么实用的更改应用程序名称的解决方案吗?在这里有一些有趣的答案,它们很有效。是的,马克,这是一个常见的解决方案,与我一起工作过。谢谢。此代码设置为活动标签,但不是应用程序的标签。这不会更改启动器上的应用程序名称,只会按预期更改activityWorks的标题-当然,启动器的应用程序名称在运行时不能更改;)即使这是一个古老的问题,也不是我一直在寻找的问题,我希望这永远不会被允许,因为这将允许程序冒充他人或插件。事实上,改变应用程序标题是可能的,但不是OP拼命摸索的方式。我喜欢下面用户“Mark”给出的答案。旧线程,但是否可以根据手机的区域设置更改应用程序标题?@pingOfDoom是的,只需将其定义为字符串资源,并在每个本地化的
strings.xml
文件中提供不同的值。这可能是在您创建新项目时为您设置的。在应用程序菜单中显示另一个图标需要时间。刷新时间太长。有没有突然改变的方法?/看起来像是一个几乎完全相同的副本,可以参考答案和问题,而不是复制它。此代码设置为活动标签,但不是应用程序标签。
setTitle("Your Title");