String[] in string.xml / möglich??

  • 10 Antworten
  • Neuester Beitrag
Diskutiere String[] in string.xml / möglich?? im Android App Entwicklung im Bereich Betriebssysteme & Apps.
S

sugg1

Neues Mitglied
Hallo,

ich möchte ein String[] per quellcode in die strings.xml Datei schreiben.

Gibt es dafür einen Befehl?
 
S

swordi

Lexikon
<string-array name="adsf">
<item>string1</item>
</string-array>

das kannst nehmen

zugriff mit getResources().getStringArray(id)
 
S

sugg1

Neues Mitglied
ich möchte elemente in strings.xml schreiben und nicht lesen
 
S

swordi

Lexikon
Achso das geht nicht wirklich. Wieso willst das machen?

Gesendet von meinem Nexus 5 mit der Android-Hilfe.de App
 
S

sugg1

Neues Mitglied
Ich möcht eigentlich ein String Array (MainActivity.lines) anstatt R.array.heroes an den ArrayAdapter übergeben, aber das funktioniert nicht :confused2:

Vielleicht gibt es dafür eine Lösung?

Deshalb wollte ich alle Werte an die strings.xml übergeben weil der ArrayAdapter damit funktioniert...



public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
ArrayAdapter adapter = ArrayAdapter.createFromResource(getActivity(), R.array.heroes, android.R.layout.simple_list_item_1);
setListAdapter(adapter);
getListView().setOnItemClickListener(this);
}
 
A

amfa

Experte
Wenn ich mich nicht irre benutz einfach den Constructor statt der createFromResources Methode:
ArrayAdapter | Android Developers[]%29

Müsste dann sein:
ArrayAdapter adapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, deinStringArray )
 
S

sugg1

Neues Mitglied
ArrayAdapter adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, data);

So funktioniert es. danke!

Nun folgt das nächste "Java Grundlagen Problem"

in der MainActivity habe ich folgene Variable angelegt:

public static String[] lines;

dieses String Array wird dann in einer Unterklasse in der try-Anweisung gefüllt.


Wenn ich lines nun an eine zweite Klasse übergeben will ist es noch nicht gefüllt?
 
A

amfa

Experte
Hmm 1. bin ich fast sicher, dass "static" hier falsch ist.
2. verstehe ich nicht was du meinst und was du vor hast ;)

Wann füllst du lines und wann gibst du es an eine zweite Klasse und wie?
 
S

sugg1

Neues Mitglied
lines wird durch ein HttpGet gefüllt (in der Klasse LoadFromNetwork extends AsyncTask<String,Void,String>)

Ich möchte den String, den ich von dem HttpGet bekomme in einzelne Zeilen in einem String array abspeichern (hier: lines) und diese zeilen dann als ListFragment ausgeben.

Mein Problem: Die Übergabe des String Arrays (lines) an die Klasse, die das ListFragment erstellt.

Ist das so verständlich? :)
 
A

amfa

Experte
Halbwegs.
Aber eine static variable ist dafür der falsche weg.

AsyncTaslk gibt doch einen Wert zurück hier solltest du dann dein Array mit den Zeilen zurück geben.
und dann damit weiterarbeiten.
Die Frage wäre von wo du den AsyncTask aufrufst.
aber der onPostExecute Methode solltest du dann das Array haben und kannst damit weiterarbeiten.
 
S

sugg1

Neues Mitglied
super, das hilft mir erstmal weiter. danke!

Der ursprüngliche Beitrag von 12:26 Uhr wurde um 12:38 Uhr ergänzt:

ok das String Array ist nun als result in der Methode onPostExecute.

Hat jemand eine Lösung, wie man dieses String Array nun in eine andere Klasse bekommt?