Android Development Exception problem

siddious

Active member
ID: 92536
L
11 September 2015
30
0
Hi Leute,
ich habe ein kleines Problem

Ich versuche gerade aus einer normalen Klasse. bzw. einer NICHT -ACTIVITY-Klasse auf die Ressourcen zuzugreifen aber leider bekomme ich eine Exception.

Ich Liste in der Main Activity einige Items mit Inhalten auf.
Klickt man auf das Item so öffnet sich eine Detail-Activity mit einem Inhalt. Der Content soll in einer normalen Klasse gespeichert werden die eine Liste beinhaltet die widerrum Objekte der einzelnen
Contents beinhaltet. Und aus der normalen ListenKlasse greife ich auf die Ressource R.string.TEXT zu...


Packe ich zum Testen in die String-Variable content einen normalen festen Text so läuft die App problemlos durch und arbeitet auch korrekt... will ich aber dynamisch bzw. auf die Ressource R.string.TEXT zugreifen dann knallt es...
Und ja, die Strings sind in der string.xml vorhanden und es befinden sich keine Tippfehler in der Namensgebung.

Code:

Code:
Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x7f06001c

Ich greife folgendermaßen drauf zu und an dieser Stelle knallt es auch :
Code:





Code:
....

 String content =  Resources.getSystem().getString(LOOKUP_TABLE[position-1]);

....


Inhalt der Lookup Tabelle ist:

Code:

Code:
 private  static final int[] LOOKUP_TABLE = new int[] {

            R.string.Name_1,

            R.string.Name_2

    };




Kann mir ggf. jemand da helfen?
 
Wahrscheinlich findet er den String nicht weil da eben keiner ist, kann das sein das "position" mit 0 initialisiert ist und dann -1 an Stelle der gewünschten 0 wird?
 
Wahrscheinlich findet er den String nicht weil da eben keiner ist, kann das sein das "position" mit 0 initialisiert ist und dann -1 an Stelle der gewünschten 0 wird?

Naja nicht nur Wahrscheinlich sondern 100%ig... aber die Ursache war eine ganz andere...

Lösung ist wenn man in Static Methoden auf Ressourcen zugreifen möchte man in der Activity Klasse eine statische getContext Methode implementiert und in den normalen Subklassen eben sich diesen Context holt und dann per folgenden Aufruf die Inhalte holt.
PHP:
String[] stringArray= context.getResources().getStringArray(R.array.meinArrayMitDaten);

oder

 String value = context.getString(Lookup.DESCRIPTION_LOOKUP_TABLE[position - 1]);