Android

Android : Change App Label programmatically

Android: программно изменить метку приложения

Как я могу изменить метку приложения, чтобы изменить название приложения, отображаемое в коде Java в Android? Я имею в виду:

<application android:icon="@drawable/icon" android:label="@string/app_name">

в манифесте Android

Есть ли какой-либо способ обновить значения в strings.xml файле?

Переведено автоматически
Ответ 1

в этом упражнении я попробовал

this.setTitle("your text");

и это сработало. Я надеюсь, что это распространенное решение

Ответ 2

На данный момент это невозможно. Это фиксированная строка в файле AndroidManifest.xml, которую нельзя изменить во время выполнения.

Ответ 3

С помощью <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);

Имейте в виду, что вы должны отслеживать, что одновременно будет включен только один псевдоним

Ответ 4

В активности запуска, прежде чем setContentView() написать это,

setTitle("Your Title");

Я не знаю, как это возможно, но это, безусловно, работает.

java android