4
我为具有不同元数据的活动设置了一些别名。活动别名的起始目的
在这个元数据中,我设置了我通过反射加载的片段的名称。
我不知道这是否是一个“干净的”解决方案,尽管通过使用Fragments并将功能放在里面我有一个SuperActivity和2个Empty SubActivities只是为了指定清单中的每一个。
现在的问题是:我可以通过意图启动别名吗? new Intent(Context, Class)
将不起作用,因为我找不到通过意向调用设置元数据的方法。
我需要通过<activity android:name="XXX"/>
开始一个意图,有没有一种简单的方法来做到这一点?
通用的活性和它的别名,我需要后者的一个新的意图:
<activity
android:name="ActivityList"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.default_searchable"
android:value="ActivityListItem" />
<meta-data
android:name="fragment"
android:value="FragmentLocationList" />
</activity>
<activity-alias
android:name="ActivityListItem"
android:label="@string/locations"
android:parentActivityName="ActivityList"
android:targetActivity="ActivityList" >
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
<meta-data
android:name="android.app.default_searchable"
android:value="ActivityListItem" />
<meta-data
android:name="fragment"
android:value="FragmentItemList" />
</activity-alias>
仅供参考,类名不一定总是以packageName作为前缀(例如,有效的活动组件名称可以是com.example.a/com.example.c.TestActivity) – user697495
也可以使用Intent#setClassName()。 – tynn