1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Static String aus Arrays.xml?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von kunkka, 14.12.2010.

  1. kunkka, 14.12.2010 #1
    kunkka

    kunkka Threadstarter Neuer Benutzer

    Beiträge:
    10
    Erhaltene Danke:
    0
    Registriert seit:
    14.09.2010
    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)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    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

    Beiträge:
    10
    Erhaltene Danke:
    0
    Registriert seit:
    14.09.2010
    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

    Beiträge:
    65
    Erhaltene Danke:
    12
    Registriert seit:
    26.07.2009
    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

    Beiträge:
    10
    Erhaltene Danke:
    0
    Registriert seit:
    14.09.2010
    Bin erst heute dazu gekommen, es auszuprobieren. Vielen vielen Dank dafür - hat super geklappt!
     

Diese Seite empfehlen