Этот вопрос задавался ранее, но без удовлетворительного ответа! Поэтому я пытаюсь сделать это еще раз.
Я хочу присвоить значку запуска приложений (который отображается на стартовом экране!) Другую, более короткую подпись. Кажется, программа запуска берет свою метку из раздела mainfest о метке основной активности, как здесь:
<activity android:name="MainActivity" android:label="@string/app_short_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Я уже изменил исходную ссылку на имя моего приложения @ string / app_name на другой, более короткий ресурс строки здесь.
НО - большой НО : это также, конечно, меняет название этого занятия по умолчанию! И я не хотел, чтобы это произошло, достаточно места для длинного имени приложения! Повторная установка длинного заголовка в onCreate
с использованием метода setTitle (int)
также не годится, потому что короткое имя будет видно пользователю в течение короткого времени, но достаточно долго, чтобы заметить!
И - пожалуйста, не отвечайте на мой вопрос, ссылаясь на пользовательский заголовок ... Я не хочу идти так долго Кстати, просто из-за глупого заголовка строки! Рисовать собственную строку заголовка для такого небольшого эффекта - боль!
Нет ли простого способа просто дать программе запуска другую строку для отображения? Спасибо за ваши ответы!
Редактировать: Еще одна причина, по которой наличие настраиваемого заголовка заголовка - это боль, заключается в том, что он не будет выглядеть как заголовок заголовка по умолчанию, мне пришлось бы явно сделать так, чтобы он выглядел одинаково на каждом устройстве ! И это не может быть решением, если, в конце концов, я не хочу другого внешнего вида!
Вы можете сделать что-то вроде этого:
public class FooBar extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// change title
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.my_title);
}
}
Вам нужно будет создать собственный макет для хранения заголовка. Это может быть так просто, как (в данном случае это my_title.xml
):
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="foo bar"/>
В вашем файле AndroidManifest.xml
вам просто нужно указать заголовок для приложения, который что будет отображаться на значке запуска. Для вашей деятельности вам не нужно указывать там заголовок.
Возможно, это не удовлетворит ваши потребности, но задумывались ли вы о создании экрана-заставки, который отображается на очень короткое время (с заголовком по умолчанию), а затем запускает ваш новое фактическое «основное» действие с выбранным вами заголовком с использованием метода setTitle(int)
? Я не пробовал это, чтобы увидеть, работает ли это, но это может создать приятную работу, которая не показывает менее чем бесшовную природу того, чего вы пытаетесь достичь.