Подтвердить что ты не робот

Android: передача параметров в Activity из AndroidManifest.xml

Кто-нибудь знает, можно ли передавать параметры в 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>

.. и иметь возможность считывать значение bar в onCreate активности. Это что-то, что можно сделать с атрибутом данных в фильтре намерения?

Спасибо,

4b9b3361

Ответ 1

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

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" />

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

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

Ответ 2

Используйте 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 "ТЕМАТИЧЕСКИЙ ПРИМЕР"

Ответ 3

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