2011-01-22 50 views
2

我有一个活动和三个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> 

但活动标题是不会改变到标签中设置的意图过滤:(活动总是包含应用程序的标签。

什么我donig错了吗?

回答

1

你确定你没有代码,明确设置标题?

您确保OPEN_RECORD意图是不被触发每次一个?

有你在确保一切试图调试具有鲜明的标签(应用程序,活动,每一个意图过滤器),并查看发生了什么?

我同意你的看法是什么,你希望发生什么文档说应该发生。但是,似乎默认使用的是<application>标签。如果上述想法中的一个没有帮助,我很害怕,那么我就没有想法了。我稍后可能会在我的系统上自己尝试一下,看看它是否适合我。


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

机器人:标签

父组分A用户可读标签。 当组件通过过滤器描述的功能呈现给用户时,使用此标签而不是父组件设置的标签。

...

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


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

图标和标签

...

在每种情况下,在含元件设置图标和标签成为默认图标和标签settin gs用于所有容器的子元素。因此,元素中设置的图标和标签是每个应用程序组件的默认图标和标签。同样,组件的图标和标签(例如元素)是每个组件元素的默认设置。 如果一个元素设置了一个标签,但是activity和它的intent filter没有,应用标签被当作标签的活动和意图过滤两种。

...

+1

我敢肯定,OPEN_RECORD不会被触发每次。其实一切正常,除了标题:(当NEW_RECORD或EDIT_RECORD被触发编辑模式布局设置,这是不同的视图模式布局 我将标题更改为代码,它的工作原理:) – 2011-01-23 11:49:24

0

您使用的意图,通常通过活动,应用程序或服务(只是几个例子)之间的信息。 我的理解是,你想要改变你的标题一个活动取决于例如。如果按下按钮。 因此,您需要简单地在您的活动中设置
this.setTitle("YOUR ACTIVITY NAME");
如果您希望在单击按钮后发生这种情况,请将其放入相应按钮的侦听器中。

0

其实,从你的例子我建议你使用单独的活动(其中可以指定的标签显示为标题!)。 在Android中,一个活动通常对应于一个用例 - 所以,如果OPEN_RECORD显示一个对话框,用户可以选择一条记录,EDIT_RECORD允许编辑记录,比你通常有两个不同的活动。

看一看的notepad tutorial的一个例子。