2013-09-26 5 views
5

Ich erstelle ein Spinner Element in meinem LinearLayout. Ich möchte Werte von sichtbar machen. Ich möchte das nicht programmatisch machen. Ich möchte Arrays darunter verwenden.Mit entryValues ​​mit Spinner-Element

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <string-array name="select"> 
     <item>a</item> 
     <item>b</item> 
     <item>c</item> 
    </string-array> 

    <integer-array name="selectValues"> 
     <item>1</item> 
     <item>2</item> 
     <item>3</item> 
    </integer-array> 

</resources> 

Einfach. Wenn a ausgewählten Artikel, möchte ich 1 als Ganzzahl erhalten. Wie ist der Weg?

<Spinner 
     android:id="@+id/sSelect" 
     android:layout_width="179dp" 
     android:layout_height="60dp" 
     android:layout_gravity="center" 
     android:entries="@array/select" 
     android:entryValues="@array/selectValues" /> 

Wenn ich oben mit unten verwende.

public void onItemSelected(AdapterView<?> item, View arg1, int sort, 
      long arg3) { 
     // TODO Auto-generated method stub 
     String selectedItem = item.getItemAtPosition(sort).toString(); 
} 

Ich kann nur Daten als String und nicht Werte erhalten. Ich kann Werte so sichtbar bekommen.

+0

möglich Duplikat [Android - Spinner konfigurieren Array verwenden] (http://stackoverflow.com/questions/1587028/android-configure-spinner-to-use-array) – naXa

Antwort

12

Behalten Sie die ausgewählten Werte als TypedArray und greifen Sie auf diese in onItemSelected() Methode.

// Keep the selected values as TypedArray 
Resources res = getResources(); 
final TypedArray selectedValues = res 
     .obtainTypedArray(R.array.selectValues); 

Spinner spinner = ((Spinner) findViewById(R.id.sSelect)); 
spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, 
      int position, long id) { 
     //Get the selected value 
     int selectedValue = selectedValues.getInt(position, -1); 
     Log.d("demo", "selectedValues = " + selectedValue); 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
     // TODO Auto-generated method stub 

    } 
}); 
+0

Können Sie mir über informieren, Ressourcen und getResources funktionieren? –

+0

['getResources()'] (http://developer.android.com/reference/android/content/Context.html#getResources()) ist eine Methode, auf die Sie von jeder Aktivitätsklasse aus zugreifen können. – imranhasanhira

+0

Ich bekomme leider einen Fehler behoben? –