2017-09-23 2 views
0

Ich versuche, einen Spinner mit den Werten eines Arrays mit der Zeichenfolge-Ressourcendatei (strings.xml) zu füllen, weiß aber nicht warum, der Spinner wird ohne Werte angezeigt .Android: Verwenden von String-Ressourcendatei zum Füllen eines Spinner

Java-Code:

String[] measures = new String[]{}; 
Resources res = getResources(); 
Spinner sp1 = (Spinner) findViewById(R.id.spinner); 

measures = res.getStringArray(R.array.measures); 
List<String> list_measures = new ArrayList<String>(Arrays.asList(measures)); 

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list_measures); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
sp1.setAdapter(adapter); 

strings.xml

<resources> 
    <string name="days">Days(d)</string> 
    <string name="hours">Hours(h)</string> 
    <string name="minutes">Minutes(min)</string> 
    <string name="seconds">Seconds(s)</string> 
</resources> 

arrays.xml

<resources> 
    <string-array name="measures"> 
     <item>@string/days</item> 
     <item>@string/minutes</item> 
     <item>@string/seconds</item> 
     <item>@string/hours</item> 
    </string-array> 
</resources> 

Ich kann nicht sehen, wo das Problem für meine Spinner erscheint ohne Werte .

+0

** 1 ** - Ich würde die ArrayList überspringen. ** 2 ** - Warum zeigt Ihre arrays.xml auf strings.xml? Sie können die Werte direkt in arrays.xml schreiben. Und lokalisierte arrays.xml Dateien. –

Antwort

2

Ich habe einen Spinner in meinem großen Arbeitsprojekt und es funktioniert großartig.
Hier ist der Code direkt aus meinem Code eingefügt.

 final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(
       this,android.R.layout.simple_spinner_dropdown_item, 
       getResources().getStringArray(R.array.measures)); 
     searchSpinner.setAdapter(arrayAdapter); 

Ich hoffe, es funktioniert.
Sie sollten die Werte auch direkt im Array speichern, anstatt das string-Element dort zu verwenden.

Verwandte Themen