Static String aus Arrays.xml?

K

kunkka

Neues Mitglied
0
Hallo,

ich sitze mal wieder an einem Problem: Ich hatte meine Arrays zunächst direkt in einer Klasse abgelegt und wollte das nun ändern, indem ich sie in res/values/arrays.xml speicher.

In meiner Klasse rufe ich das Array dann so auf:
private String[] namen = getResources().getStringArray(R.array.namensliste);

Mein Problem ist jedoch, dass das StringArray namen static sein muss, da ich sonst an anderer Stelle die Fehlermeldung "Cannot make a static reference to the non-static field namen" erhalte.

Hab mich schon ein bisschen durchs Netz gequält, aber noch nichts passendes gefunden.

Lg,
kunkka
 
Wenn du in einer statischen Methode drauf zugreifen willst, dann mach das doch private static..
Wo ist denn das Problem?
 
Fr4gg0r schrieb:
Wenn du in einer statischen Methode drauf zugreifen willst, dann mach das doch private static..
Wo ist denn das Problem?
Wenn ich es so ändere:

private static String[] namen = getResources().getStringArray(R.array.namensliste);

Erhalte ich die Fehlermeldung:
Cannot make a static reference to the non-static method getResources() from the type ContextWrapper.
 
Da die Resourcen immer von einem Context abhängig sind, bleibt dir wohl nur erst in der onCreate-Methode deiner Application bzw. Activity den Inhalt der static Variable zu setzen.

in etwas so:

public class YourActivity extends Activity {

...

private static String[] arr;

public onCreate() {

YourActivity.arr = this.getResources().getStringArray(R.arrays.yourId);

}

...
}
 
  • Danke
Reaktionen: kunkka
Bin erst heute dazu gekommen, es auszuprobieren. Vielen vielen Dank dafür - hat super geklappt!
 

Ähnliche Themen

R
  • Robby1950
2
Antworten
23
Aufrufe
954
Robby1950
R
B
Antworten
6
Aufrufe
1.016
jogimuc
J
Jansenwilson
Antworten
1
Aufrufe
675
Mazuch
Mazuch
Zurück
Oben Unten