Имя приложения Android не отображается
В моем приложении Android не отображается имя приложения "имя_приложения", вместо этого отображается название действия "title". Это из моего файла манифеста;
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/title">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Почему приложение получает свое имя из основного действия и игнорирует метку приложения?
Это полный манифест
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.extempor.cheetah"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/title">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".InfoHelp"
android:label="@string/titleInfo">
<intent-filter>
<action android:name="android.intent.action.HELPINFO" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
Ответы
Ответ 1
Этот вопрос объяснил мне причину этого:
Именование моего приложения в android
На панели запуска на самом деле отображается значок android: label и android: значок для активности (-ов), которые объявляют:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
поэтому метка приложения бесполезна.
Ответ 2
У меня та же проблема, решение для меня:
on MainActivity.java change:
public class MainActivity extends Activity {...}
для
public class MainActivity extends AppCompatActivity {...}
Ответ 3
Вы можете просто указать метку активности вашей программы запуска в качестве имени приложения, а затем установить заголовок actionBar вручную в коде для этой активности.
getSupportActionBar().setTitle(R.string.title_user_login);
Это, конечно, если вы используете панель действий. Заголовки заголовков нормального названия уродливы в любом случае!
EDIT: вы можете увидеть изменение текста при запуске!
Ответ 4
Вы можете отображать только одну метку за раз. Метка приложения или ярлык активности.
Если вы установите метку и запустите ее, вы увидите метку Activity.
Чтобы увидеть метку приложения, не устанавливайте android:label="@string/title"
в основной активности.
Ответ 5
Даже я заметил то же самое и кажется, что это ошибка!
Вы должны сообщить об этом Google:)
Ответ 6
вам нужно
public class MainActivity extends AppCompatActivity {.....}
если вы не можете расширять AppCompatActivity, вы можете альтернативно добавить последнюю строку кода ниже, чтобы показать заголовок на панели.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("the name i want to appear");
Ответ 7
Вы должны заменить
<activity android:name=".Main"
android:label="@string/title">
с
<activity android:name=".Main"
android:label="@string/app_name">
Ответ 8
Используйте
this.setTitle("");
в вашем методе onCreate() вашей активности и используйте ваше предпочтительное имя приложения в строке @string/app_name для
<application> android:lable = "@string/app_name" </application>
Ответ 9
Если вы или кто-то еще сталкиваетесь с проблемой, то вот решение, которое сработало для меня.
Сохраните ярлык приложения и ярлык основной активности в манифесте, как показано ниже.
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
в файле main.java задайте метку вашей активности, как показано ниже (предположим, вы используете панель действий)
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle(getResources().getString(R.string.title));
перед установкой этого измененного приложения удалите предыдущую версию, перезагрузите телефон и теперь установите измененное приложение.
Надеюсь, это поможет.
Ответ 10
Если вы используете студию Android, то вам следует расширить AppCompatActivity, тогда отобразится только активность.
Пример кода:
Основная деятельность: открытый класс MainActivity расширяет AppCompatActivity
styles.xml
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
Ответ 11
Во всех действиях вы должны изменить значение
android:label
to
"@string/app_name"
ОБНОВЛЕНО:
Хорошо, ответ заключается в том, что The First Activity с ярлыком @string/title - это ваша основная деятельность, которая появляется в меню Launcher. Поэтому вы должны установить ярлык для этой активности. Другое решение состоит в том, что вы создаете объект Temp и вызываете основную активность оттуда и устанавливаете свою основную деятельность надписью Label и вашей Temp-активностью на метку App_name и делаете свою Temp Activity основным средством запуска.
Надеюсь, что это поможет
Спасибо
Ответ 12
Если вы используете студию Android, также вы используете MapsActivity, тогда вы должны расширить ActionBarActivity, а также добавить имя приложения в String.xml. Меня устраивает. спасибо
<resources>
<string name="app_name">App Name</string>
<string name="title_activity_maps">Map</string>
Ответ 13
Вы можете напрямую указать свое имя приложения на него как android: lable = "app_name" или проверить свой файл String.xml в папке "Значения"