Могу ли я установить для приложения имя, отличное от метки действия с фильтром намерений?

У меня есть приложение с четырьмя действиями. Я установил фильтр намерений для одного из них, чтобы он сначала отображался пользователю, когда он запускает приложение. На нем есть этикетка с надписью «Добавьте расходы».

Теперь имя под значком приложения в телефоне говорит «Добавить расходы».

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

Это возможно?

Часть моего манифеста:

Как видите, я пытался установить android: label = "@ string / app_name" на уровне приложения, но это не сработало. Ярлык действия в любом случае отображается под значком.

<application
    android:icon="@drawable/ic_money_bag"
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Holo.Light" >
    <activity
        android:name=".AddExpenseActivity"
        android:label="@string/add_expense_header" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".ListExpensesActivity"
        android:label="@string/list_expenses_header" >
        </activity>
    <activity
        android:name=".AddExpenseAccountActivity"
        android:label="@string/add_expense_account_header" />
    <activity
        android:name=".ListExpenseAccountsActivity"
        android:label="@string/list_expense_accounts_header" />
</application>

С уважением, Маттиас


person Mattias    schedule 12.06.2012    source источник


Ответы (2)


Вы можете использовать setTitle (String s) в каждом действии, чтобы динамически изменять имя, которое отображается в строке заголовка. Так что для вас, установив его в onCreate, может хватить всего, что вы хотите.

setTitle("Hello StackOverflow");
person Donal Rafferty    schedule 12.06.2012
comment
Я помещаю заголовок Launcher в действие с фильтром намерений и устанавливаю заголовок в onCreate в каждом действии. Мне не нравится такой способ, потому что я предпочел бы объявлять заголовок для каждого Activity в манифесте, чем в коде, но если это единственный способ ... Большое спасибо, Дональд за вашу помощь! - person Mattias; 13.06.2012

Попробуйте дать

<intent-filter android:label="@string/app_name">
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

Когда метка указана для действия, я будет отображаться с той же меткой в ​​Launcher.

Что вы можете сделать, так это присвоить метку фильтру намерений

person Vivek Khandelwal    schedule 12.06.2012
comment
Спасибо за ваше предложение, но это именно то, чего я не хотел делать, потому что мне нужны разные ярлыки для каждого действия и еще один для заголовка Launcher. Таким образом, я должен установить заголовок Launcher в процессе запуска. Спасибо, в любом случае! - person Mattias; 13.06.2012