Разное название деятельности в разных намерениях - PullRequest
2 голосов
/ 22 января 2011

У меня есть одно действие и три целочисленных фильтра, каждый с различным набором меток (AndroidManizest.xml ниже)

    <activity android:name=".activities.RecordActivity">
        <intent-filter>
            <category android:name="android.intent.category.DEFAULT" />
            <action android:name="com.keitai.enigma.OPEN_RECORD" />
        </intent-filter>
        <intent-filter android:label="@string/newRecord">
            <category android:name="android.intent.category.DEFAULT" />
            <action android:name="com.keitai.enigma.NEW_RECORD" />
        </intent-filter>
        <intent-filter android:label="@string/editRecord">
            <category android:name="android.intent.category.DEFAULT" />
            <action android:name="com.keitai.enigma.EDIT_RECORD" />
        </intent-filter>
    </activity>

Но заголовок действия не меняется на набор меток в фильтре намерений :( Деятельность всегдасодержит ярлык приложения.

Что я не так понял?

Ответы [ 3 ]

1 голос
/ 22 января 2011

Вы уверены, что у вас нет кода, который устанавливает заголовок явно?

Вы уверены, что намерение OPEN_RECORD не вызывается каждый раз?

Вы пробовали отладку, убедившись, что у всех есть свой собственный ярлык (приложение, действие, каждый фильтр-намерение) и посмотрев, что произойдет?

Я согласен с вами, что то, что вы ожидали, это то, что, по словам документации, должно произойти,Но похоже, что по умолчанию используется метка <application>.Боюсь, если одна из вышеперечисленных идей не поможет, значит, у меня нет идей.Я мог бы попробовать это позже в своей системе, чтобы увидеть, произойдет ли это для меня.


http://developer.android.com/guide/topics/manifest/intent-filter-element.html#label

android: label

Пользователь-читаемая метка для родительского компонента. Эта метка, а не метка, установленная родительским компонентом, используется, когда компонент представляется пользователю как обладающий возможностью, описанной фильтром.

...

Значением по умолчанию является метка, установленная родительским компонентом.Если родительский элемент не указывает метку, по умолчанию используется метка, установленная атрибутом метки элемента.


http://developer.android.com/guide/topics/manifest/manifest-intro.html#iconlabel

Значки и метки

...

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

...

0 голосов
/ 22 января 2011

На самом деле, из вашего примера я бы предложил вам использовать отдельные действия (которые могут указывать метки, которые отображаются как заголовки!). В Android одно действие обычно соответствует одному варианту использования - поэтому, если OPEN_RECORD показывает диалоговое окно, в котором пользователь может выбрать запись, а EDIT_RECORD позволяет редактировать запись, то у вас обычно есть два разных действия.

Для примера посмотрите учебник .

0 голосов
/ 22 января 2011

Обычно вы используете намерения для передачи информации между действиями, приложениями или службами (всего несколько примеров). Насколько я понимаю, вы хотите изменить название one деятельность в зависимости, например, от. если кнопка нажата. Поэтому вам нужно просто установить в своей деятельности
this.setTitle("YOUR ACTIVITY NAME");
Если вы хотите, чтобы это произошло после нажатия кнопки, поместите его в прослушиватель соответствующей кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...