2011-02-28 33 views
12

AndroidManifest.xml dosyasındaki bir etkinliğe parametreler geçirmenin mümkün olup olmadığını bilen var mı? Aynı etkinliği birkaç uygulamada kullanmak istiyorum, ancak uygulamaya dayalı olarak bu etkinliğin görünümünü iyileştirmek için bir yol var.Android: Parametreleri AndroidManifest.xml etkinliğinden geçirme

E.g. Ben ..

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

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

(AndroidManifest.xml) gibi bir şey yazmak ve faaliyet onCreate barın değerini okumak mümkün istiyorum. Bu, bir amaç filtresindeki veri niteliğiyle yapılabilecek bir şey midir?

Teşekkürler,

cevap

8

Aslında, sadece bunun için bir yolu yoktur.

Meta veri etiketi aşağıdaki gibi tanımlanır

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

mümkündür Bu kullandığınız etiketin içeriği alabilirsiniz Kısacası

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

: Bu makaleyi edin Verilerdeki değerlere erişmek için, ancak etkinlikle ilgili bir şey belirtmek isterseniz, bu daha temiz bir yaklaşımdır.

Yardım edin.

0

Bunu yapmanın bir yolu olduğunu sanmıyorum. (Bu gibi bir şeye işaret etmek için faaliyetin ismini kötü bir şekilde kullanmanız gerekebilir.) Daha iyi bir yaklaşım, uygulamalarınızın her birinde etkinlik için gerekli bilgileri içeren standart bir kaynak belirtmek olabilir.

1

Kullanım res/values ​​/ strings.xml

burada verilerinizi kaydedin. Sonra

Resources r; 

r = getResources(): 

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

kullanarak bu alabilirsiniz

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

gibi kullanın bazı şeyleri ben bu aradığın şeyi olduğunu düşünüyorum. Ancak, uygulamanızı stilize etmek istiyorsanız, bir tema kullanmaya dikkat etmelisiniz.

[temalar robot Örnek] [1]

[1]: http://www.androidengineer.com/2010/06/using-themes-in-android-applications.html "TEMASI Örnek"

İlgili konular