Android:将参数从AndroidManifest.xml传递到Activity

Ben*_*ton 14 android android-manifest

有谁知道是否可以将参数传递到AndroidManifest.xml文件中的Activity?我想在几个应用程序中使用相同的活动,但有一种方法可以根据应用程序调整该活动的外观.

我想写一些像(在AndroidManifest.xml中)

<activity android:name=".MyActivity"
              android:label="@string/app_name"
              android:screenOrientation="portrait">

        <extradata>
              <item name="foo" value="bar"/>
        </extradata>
</activity>
Run Code Online (Sandbox Code Playgroud)

..并能够在活动的onCreate中读出bar的值.这是否可以通过intent过滤器中的data属性完成?

谢谢,

小智 9

实际上,有办法做到这一点.查看这篇文章:

http://blog.iangclifton.com/2010/10/08/using-meta-data-in-an-androidmanifest/

简而言之,您可以使用以下方法获取标记的内容:

ApplicationInfo ai = getPackageManager().getApplicationInfo(activity.getPackageName(),     PackageManager.GET_META_DATA);
Bundle bundle = ai.metaData;
String myApiKey = bundle.getString("my_api_key");
Run Code Online (Sandbox Code Playgroud)

元数据标签定义如下:

<meta-data android:name="my_api_key" android:value="mykey123" />
Run Code Online (Sandbox Code Playgroud)

可以访问值中的数据,但是如果要指定与活动相关的内容,则这是更清晰的方法.

希望能帮助到你.