String.xml Kaynak Dosyasına Java Android Kodundan erişin


109

res/values/string.xmlKaynak dosyasındaki değerlere Android'den nasıl erişirsiniz Activity class?

Yanıtlar:


149

Peki String'i kullanarak elde edebilirsiniz,

getString(R.string.app_name);

Ve kullanarak dizge dizisi elde edebilirsiniz

String arr[] = getResources().getStringArray(R.array.planet);
for (int i = 0; i < arr.length; i++) {
        Toast.makeText(getBaseContext(),arr[i], Toast.LENGTH_LONG).show();  
}

getString (R. string.planets);
Ravikiran

Cevabınızı kontrol ettim ama ForceClose hatası aldım. Yardımınız için teşekkürler
Ravikiran

BU LOGCAT 08-27 20: 16: 04.844: HATA / AndroidRuntime (339): FATAL EXCEPTION: ana 08-27 20: 16: 04.844: ERROR / AndroidRuntime (339): java.lang.RuntimeException: ComponentInfo etkinliği başlatılamıyor {com.string / com.string.string}: android.content.res.Resources $ NotFoundException: Dize kaynağı kimliği # 0x7f050000
Ravikiran

BU LOGCAT 08-27 20: 16: 04.844: HATA / AndroidRuntime (339): FATAL EXCEPTION: ana 08-27 20: 16: 04.844: ERROR / AndroidRuntime (339): java.lang.RuntimeException: ComponentInfo etkinliği başlatılamıyor {com.string / com.string.string}: android.content.res.Resources $ NotFoundException: Dize kaynağı kimliği # 0x7f050000 08-27 20: 16: 04.844: ERROR / AndroidRuntime (339): android.app.ActivityThread'de. performLaunchActivity (ActivityThread.java:2663)
Ravikiran

1
GetString () 'in statik olmadığını unutmayın. Uygulama sınıfınızın statik bir özelliğine string.xml değeri atamak istiyorsanız, bunu onCreate () sınıfınızda yapın.
KrisWebDev

44

strings.xml:

<string name="some_text">Some Text</string>

Aktivite:

getString(R.string.some_text);

@MByD Bu, senden daha hızlı olduğum ilk sefer =)
Michael

<string-array name = "planet"> <item> Merkür </item> <item> Venüs </item> <item>Earth</item> </string-array>
Ravikiran

16

Bu kodu girin res/values/string.xml

<string-array name="planet"> 
    <item>Mercury</item>
    <item>Venus</item>
    <item>Earth</item>
    <item>Mars</item>
</string-array>

Bu kod, içinde bulunan res/layout/main.xmlvarsayılan widget'ların içine yerleştirilecek ve kaldırılacaktır main.xml.

<ListView android:id="@+id/planet"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:entries="@array/planet"/>
</LinearLayout>

15

GetString (R.string.app_name) ise; sizin için çalışmıyor, şu şekilde bir bağlam aktarabilirsiniz:

context.getString(R.string.app_name);

2

Faaliyet bağlamına sahipseniz, şununla gidin:

getString(R.string.app_name);

Bağlama sahip değilseniz, aşağıyı deneyin, kullanarak etkinlikten bağlam elde edebilirsiniz Constructor.

mContext.getString(R.string.app_name);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.