【问题标题】:Different activity title in different intent actions不同意图动作中的不同活动标题
【发布时间】:2011-01-22 16:32:10
【问题描述】:

我有一个活动和三个 intet 过滤器,每个都设置了不同的标签,(AndroidManifiest.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>

但活动标题不会更改为意图过滤器中设置的标签:(活动始终包含应用程序标签。

我做错了什么?

【问题讨论】:

    标签: android android-activity label title intentfilter


    【解决方案1】:

    您确定没有明确设置标题的代码吗?

    您确定不是每次都会触发OPEN_RECORD 意图吗?

    您是否尝试过调试,确保所有内容都有不同的标签(应用程序、活动、每个意图过滤器)并查看会发生什么?

    我同意您的观点,您期望发生的事情就是文档所说的应该发生的事情。但似乎无论如何都在使用默认的&lt;application&gt; 标签。恐怕如果上述想法之一没有帮助,那么我就没有想法了。稍后我可能会在我的系统上自己尝试一下,看看它是否会发生在我身上。


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

    机器人:标签

    父组件的用户可读标签。 这个标签,而不是父组件设置的标签,在组件被呈现给用户时使用,它具有过滤器描述的能力。

    ...

    默认值是父组件设置的标签。如果父级没有指定标签,则默认为元素的标签属性设置的标签。


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

    图标和标签

    ...

    在任何情况下,包含元素中的图标和标签设置都会成为容器所有子元素的默认图标和标签设置。因此,元素中设置的图标和标签是每个应用程序组件的默认图标和标签。同样,为组件(例如元素)设置的图标和标签是每个组件元素的默认设置。 如果元素设置了标签,但活动及其意图过滤器没有,则应用程序标签将被视为活动和意图过滤器的标签。

    ...

    【讨论】:

    • 我确定不是每次都触发 OPEN_RECORD。实际上一切正常,除了标题:(当触发 NEW_RECORD 或 EDIT_RECORD 时,编辑模式布局设置,这与视图模式布局不同。我将标题更改移动到代码中,它可以工作:)
    • @Valdis Zobēla - 没有帮助,但我玩了记事本教程应用程序(唯一方便的 - 只有启动器意图)。我在每件事上都贴上标签,看看会发生什么。有趣的是,intent-filter 标签在 Laucher 应用程序中显示为应用程序的标签。但是,当应用程序通过意图从启动器调用时,应用程序的主页没有使用意图过滤器标签作为标题。主页改为显示活动标签。
    【解决方案2】:

    您通常使用意图在活动、应用程序或服务之间传递信息(仅举几个例子)。 我的理解是,您想根据例如更改 one 活动的标题。如果按下按钮。 因此,您只需在活动中进行设置
    this.setTitle("YOUR ACTIVITY NAME");
    如果您希望在单击按钮后发生这种情况,请将其放入相应按钮的侦听器中。

    【讨论】:

      【解决方案3】:

      实际上,根据您的示例,我建议您使用单独的活动(可以指定显示为标题的标签!)。 在 Android 中,一个活动通常对应一个用例 - 因此,如果 OPEN_RECORD 显示一个对话框,用户可以在其中选择记录并且 EDIT_RECORD 允许编辑记录,那么您通常会有两个不同的活动。

      以notepad tutorial 为例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-27
        相关资源
        最近更新 更多