1. kunkka, 14.12.2010 #1
    kunkka

    kunkka Threadstarter Neuer Benutzer

    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
     
  2. Fr4gg0r, 14.12.2010 #2
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Wenn du in einer statischen Methode drauf zugreifen willst, dann mach das doch private static..
    Wo ist denn das Problem?
     
  3. kunkka, 14.12.2010 #3
    kunkka

    kunkka Threadstarter Neuer Benutzer

    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.
     
  4. PeaceI, 15.12.2010 #4
    PeaceI

    PeaceI Android-Hilfe.de Mitglied

    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);

    }

    ...
    }
     
    kunkka bedankt sich.
  5. kunkka, 16.12.2010 #5
    kunkka

    kunkka Threadstarter Neuer Benutzer

    Bin erst heute dazu gekommen, es auszuprobieren. Vielen vielen Dank dafür - hat super geklappt!