Android Как изменить текст заголовка для одного действия?

Этот вопрос похож на вопрос, что я спросил вчера. Однако меня беспокоит другое. Подводя итог, мне нужно было удалить текст из заголовка для одного из моих действий (основного действия) (1). Я сделал это, используя setTitle(""); по методу onCreate. Однако при запуске приложения прежний заголовок отображается в течение 2 секунд, после чего меняется на новый.

Вероятно, это связано с тем, что заголовок загружается до загрузки действия, и я думаю, мне нужно либо сделать так, чтобы заголовок загружался одновременно с загрузкой действия, либо делать это не в коде, а в файлах xml.

Любая идея?

Спасибо!

(1): причина, по которой я хочу это сделать, объясняется здесь.


person Amokrane Chentir    schedule 05.07.2011    source источник
comment
Можете ли вы опубликовать фрагмент кода вашего тела onCreate()?   -  person Wroclai    schedule 13.07.2011


Ответы (4)


Вы можете сделать это из файла манифеста для каждого действия отдельно. Посмотрите здесь .

person woodshy    schedule 05.07.2011


Попробуйте это

@Override
public void onCreate(Bundle state)
{
requestWindowFeature(Window.FEATURE_NO_TITLE);

Вы также можете попробовать указать свой собственный макет заголовка

@Override
public void onCreate(Bundle state)
{
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title);

person l_39217_l    schedule 05.07.2011
comment
Я не хочу удалять заголовок. Я хочу удалить текст из заголовка. На самом деле у меня есть заголовок — это png. Проблема в том, что у меня метка (которая нужна для названия приложения) написана на этом png, что некрасиво. Следовательно, необходимо удалить только этот ярлык из заголовка. - person Amokrane Chentir; 05.07.2011

Если вы хотите сделать это программно, используйте setTitle(); в onCreate

Например, у меня есть активность, которую можно использовать для двух целей: либо добавить новый элемент, либо отредактировать существующий в базе данных.

if (editThis == null) {
    setTitle(getString(R.string.new_item)); //set activity title to new
        } else {
    setTitle(getString(R.string.edit_item)); // set Editor title to edit

}

В этом примере editThis — это входящее намерение, данные или что-то подобное, указывающее, что мы хотим отредактировать существующий элемент.

Что касается смены названия через несколько секунд. У вас есть заголовок для действия, скажем, в манифесте? Скорее всего, приложение сначала загружает эту информацию, а затем переходит к строке, где вы говорите ему изменить это снова.

person atschpe    schedule 13.06.2017

Перейдите в папку с вашими значениями, в strings.xml. Здесь вы видите строку app_name. Отредактируйте его на желаемую метку.

person usealbarazer    schedule 05.07.2011
comment
Это не очень надежно... вопрос не в том, как переименовать приложение, а в том, как изменить текст для одного из действий. - person Daryl Bennett; 09.12.2014