Android: передача параметров в Activity из AndroidManifest.xml - PullRequest
14 голосов
/ 28 февраля 2011

Кто-нибудь знает, возможно ли передать параметры в Activity из файла AndroidManifest.xml?Я хочу использовать одно и то же действие в нескольких приложениях, но у меня есть способ обуславливать появление этого действия в зависимости от приложения.

Например, я хотел бы написать что-то вроде (в AndroidManifest.xml)

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

        <extradata>
              <item name="foo" value="bar"/>
        </extradata>
</activity>

.. и сможете считывать значение бара в onCreate действия.Это можно сделать с помощью атрибута данных в фильтре намерений?

Спасибо,

Ответы [ 3 ]

9 голосов
/ 14 ноября 2012

На самом деле, есть способ сделать это. Проверьте эту статью:

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");

Метаданные тег определяется следующим образом:

<meta-data android:name="my_api_key" android:value="mykey123" />

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

Надеюсь, это поможет.

1 голос
/ 28 февраля 2011

Используйте res / values ​​/ strings.xml

Сохраните свои данные здесь.Используйте что-то вроде

<string-array name = "foo">
<item>bar1</item>
<item>bar2</item>
<item>red</item>
<item>blue</item>
<item>one</item>
<item>two</item>
</string-array>

, затем вы можете получить это, используя

Resources r;

r = getResources():

String[] foos = r.getStringArray(R.array.foo);

Я думаю, это то, что вы ищете.Но если вы хотите стилизовать ваше приложение, тогда вам стоит взглянуть на использование темы.

[пример Android для тем] [1]

[1]: http://www.androidengineer.com/2010/06/using-themes-in-android-applications.html"THEME ПРИМЕР "

0 голосов
/ 28 февраля 2011

Я не думаю, что есть способ сделать это.(Плохой хак может состоять в том, чтобы использовать имя процесса для действия, чтобы сигнализировать о чем-то вроде этого.) Гораздо лучшим подходом было бы указание стандартного ресурса в каждом приложении, содержащего необходимую информацию для действия.

...