Accedi al file di risorse string.xml da Java Android Code


109

Come si accede ai valori nel res/values/string.xmlfile di risorse da Android Activity class?

Risposte:


149

Bene, puoi ottenere String usando,

getString(R.string.app_name);

E puoi ottenere un array di stringhe usando

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

<string-array name = "planet"> <item> Mercury </item> <item> Venus </item> <item>Earth</item> </string-array> per questo codice mentre io uso getString (R. string.planets);
Ravikiran

Ho controllato la tua risposta ma ho ricevuto l'errore ForceClose. Grazie per l'aiuto
Ravikiran

QUESTO È LOGCAT 08-27 20: 16: 04.844: ERRORE / AndroidRuntime (339): ECCEZIONE FATALE: principale 08-27 20: 16: 04.844: ERRORE / AndroidRuntime (339): java.lang.RuntimeException: Impossibile avviare l'attività ComponentInfo {com.string / com.string.string}: android.content.res.Resources $ NotFoundException: ID risorsa stringa # 0x7f050000
Ravikiran

QUESTO È LOGCAT 08-27 20: 16: 04.844: ERRORE / AndroidRuntime (339): ECCEZIONE FATALE: principale 08-27 20: 16: 04.844: ERRORE / AndroidRuntime (339): java.lang.RuntimeException: Impossibile avviare l'attività ComponentInfo {com.string / com.string.string}: android.content.res.Resources $ NotFoundException: ID risorsa stringa # 0x7f050000 08-27 20: 16: 04.844: ERROR / AndroidRuntime (339): su android.app.ActivityThread. performLaunchActivity (ActivityThread.java:2663)
Ravikiran

1
Nota che getString () non è statico. Se vuoi assegnare un valore string.xml a una proprietà statica della tua classe app, fallo nella tua classe onCreate ().
KrisWebDev

44

strings.xml:

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

Attività:

getString(R.string.some_text);

@MByD Questa è la prima volta che sono stato più veloce di te =)
Michael

<string-array name = "planet"> <item> Mercurio </item> <item> Venere </item> <item> Terra</item> </string-array>
Ravikiran

16

Inserisci questo codice res/values/string.xml

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

Questo codice da inserire res/layout/main.xmle rimuovere i widget predefiniti presenti in main.xml.

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

15

Se getString (R.string.app_name); non funziona per te, puoi passare un contesto come questo:

context.getString(R.string.app_name);

2

Se hai il contesto dell'attività, vai con:

getString(R.string.app_name);

Se non hai il contesto, prova di seguito, puoi ottenere il contesto dall'attività utilizzando Constructor.

mContext.getString(R.string.app_name);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.