Variable in "String ID" ("Herkunftsort")?

  • Antworten:4
  • Bentwortet
Ansgar M
  • Forum-Beiträge: 1.544

16.08.2010, 17:48:02 via Website

Hallo liebe Community:),
erstmal muss ich sagen, dass ich ganz neu auf diesem Gebiet (Prorammierung) bin.
Ich versuche mich jetzt seit einigen Tagen im Programmieren (mit Eclipse und ADT Plugin, weil der AppInventor mich noch nicht will:P und nur eine Activity unterstützt:unsure:).

Nun habe ich eine Frage, habs schon gegoogelt und die SuFu benutzt, aber nichts richtiges gefunden, was mir weiterhilft:
Also, ich möchte eine ListView Programmieren, die Abkürzungen enthält und beim Klicken auf die Abkürzungen soll sich ein AlertDialog öffnen, der die Abkürzung erklärt. Soweit klappt das auch (Dialog und OnItemClickListener). Nur eins klappt noch net so ganz: einen individuellen String mit der Erklärung zu öffnen. Ich krieg es mit getItemAtPosition zwar hin die geklickte Abkürzung im AlertDialog anzuzeigen, aber ich schaffe es nicht einen anderen Erklärungs-String für jeden AlertDialog anzuzeigen. Ich würde es gern so, oder ähnlich lösen:
1getString(R.strings.(abkürzung))
Denn die Abkürzungen, die ich "mit in den Dialog kriege" sind gleichzeitig der "Schluss" der ResourcenID.
Ich hoffe jemand versteht, was ich meine, wenn nicht kann ich es auch nochmal versuchen, besser zu erklären.
Verzeiht meine "Fachausdrücke">_>...
Lg Ansgar

P.S. Nebenfrage, wenn das schnell zu erklären geht... Wie kann ich ein bestimmtes (Nummer XX) item aus einem Array "öffnen"? So müsste das doch eigentlich auch gehen ("Datenumzug" in eine Array.xml vorausgesetzt..

Antworten
Jochen Rühl
  • Forum-Beiträge: 133

16.08.2010, 18:13:52 via Website

Hi,

vielleicht ist das standard Java ResourceBundle das was Du suchst:

ResourceBundle Beispiel

Nachtrag:
Ich habe keine Methode gefunden die Dir einen String in eine Resource ID umwandelt.
Mag sein, dass ich etwas übersehen habe.

Falls Du aber unbedingt die Abkürzungen aus R.string holen möchtest, könntest Du so etwas versuchen:

1getString(R.string.class.getField("abkürzung").getInt(null));

Gruß
Jochen

— geändert am 16.08.2010, 19:00:08

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

17.08.2010, 12:58:53 via App

Danke:),
So funktioniert das.
Nur ist es bei 100 Einträgen sehr Absturzanfällig... Muss ich mal sehen, wie man das noch lösen kann.
Das mit den Ressourcen versteh ich nicht ganz, ich hab nicht vor das zu übersetzen ?
Lg Ansgar

Antworten
Jochen Rühl
  • Forum-Beiträge: 133

17.08.2010, 13:12:09 via Website

Hi,

also wenn Du es nicht Internationalisierung möchtest, könntest Du auch die Properties Klasse benutzen.
Ist im Prinzip das Gleiche wie das ResourceBundle nur ohne Internationalisierung.

Hier ist ein Beipiel:

http://www.tutorials.de/java/322064-properties-lesen.html#post1661143

Gruß
Jochen

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

17.08.2010, 14:48:08 via App

Danke, das sieht gut aus, wie gesagt, ich versteh von Java soviel, wie wenn jemand mich auf Italienisch zutexten würde..:) Na gut, ein Bisschen übertrieben^^
Ich werde mir wohl noch ein Bisschen Javakenntnisse aneignen müssen. Ich finde nur, das man mit «Android-Java» das Ergebnis besser sieht... Aber egal, wird schon:)
Lg Ansgar
P.S. Übrigens: tolle Community hier! Auch die Androidpit-App ist klasse!

Antworten