如何更改应用程序标签以更改android中java代码显示的应用程序名称? 我指的是:
<application android:icon="@drawable/icon" android:label="@string/app_name">
Android Manifest中的
有没有办法更新 strings.xml 文件中的值?
答案 0 :(得分:48)
在活动中,我试过
this.setTitle("your text");
它有效。我希望这是一个常见的解决方案
答案 1 :(得分:13)
目前还不可能。它是AndroidManifest.xml文件中的固定字符串,无法在运行时更改。
答案 2 :(得分:10)
使用<activity-alias>
,您可以将应用程序图标和名称更改为由您预定义的少数。
在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>
现在您可以在这两个别名之间切换,因此我们将更改应用程序图标或/和名称。 要从Default切换到Flavor-One,请使用此代码。
getPackageManager().setComponentEnabledSetting(
new ComponentName("package.name", "package.name.MainActivity-Flavor-One"),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
getPackageManager().setComponentEnabledSetting(
new ComponentName("package.name", "package.name.MainActivity-Default"),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
请注意,您必须跟踪一次只能启用一个别名
答案 3 :(得分:3)
在Launcher活动中,在setContentView()
写这个之前,
setTitle("Your Title");
我不知道它是怎么可能的,但它确实有效。
答案 4 :(得分:1)
应用程序的android:label是一个固定的资源引用者。
但是这个引用者下的字符串可能有多个值,具体取决于配置限定符名称(values-en,-large,-land等),具体取决于 Providing Alternative Resources
答案 5 :(得分:0)
对任何感兴趣的人:Android How to change the application title 但目前尚不清楚它是否会更改“应用程序标签”(即应用程序列表中图标的名称)或仅更改窗口标题。
答案 6 :(得分:0)
如果您要扩展固件,您可以通过更改IconCache.java文件并使其显示带有内部电话值的字符串来实现此目的。
例如,如果您希望SIM工具包显示运营商的名称,您可以这样做。
但是对于常规应用程序,正如人们所说的那样,它目前还不具备。
答案 7 :(得分:0)
史密斯先生说,这是不可能的,
但您可以使用多个ActivityAlias
,可以动态启用/禁用多个ActivityAlias
并指向相同的targetActivity。因此,请为应用名称创建选择器 - 让用户选择一个并通过packageManager
启用ComponentName componentName = new ComponentName(context, context.getPackageName() + "." + aliasName);
context.getPackageManager().setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
:
COMPONENT_ENABLED_STATE_DISABLED
要隐藏旧别名,请使用带有标记的相同代码:npm install css-loader style-loader less-loader
您还可以添加在启用别名后直接向主启动器添加快捷方式的可能性。这里有很多关于母猪的描述。