Spinner Beschriftung und Wert (Value) ausgeben

  • 0 Antworten
  • Neuester Beitrag
Diskutiere Spinner Beschriftung und Wert (Value) ausgeben im Android App Entwicklung im Bereich Betriebssysteme & Apps.
B

Benedd

Neues Mitglied
Hallo zusammen, hab da ein kleines Spinner Problem.


Aufbau:

  • main.xml
  • array.xml
  • strings.xml
  • ActivityA

in meinem Beispiel holt sich der Spinner01 die Daten aus der array.xml und zeigt diese an. Ich möchte aber das nur die Beschreibung im Spinner01 sichtbar ist und nicht der Wert. Jedoch bei der Auswahl soll er jeweils in der TextView01 (Beschreibung) und TextView02 (Wert) die entsprechenden Daten ausgeben.
Entweder muss in der array,xml oder in der ActivityA etwas anders definiert werden, weiß aber nicht wie.
Code siehe unten, ein Lösungsvorschlag wäre super.


Gruß Benedd


main.xml:


Spinner Beschriftung und Wert (Value) ausgeben.JPG


array.xml

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

<resources>

        <string-array name="auswahl">
        <item>Beschreibung 1 <value>10</value> </item>
        <item>Beschreibung 2 <value>20</value> </item>
        <item>Beschreibung 3 <value>30</value> </item>
        </string-array> 
               
</resources>
strings.xml

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

<resources>

    <string name="hello">Hello World, ActivityA!</string>
    <string name="auswahl">.:: Auswahl ::.</string>
    
</resources>
ActivityA:

Code:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.AdapterView.OnItemSelectedListener;



public class ActivityA extends Activity {
    
//-----------------------------------------------------------------------
    
    // Deklaration TextView
    
    private TextView beschreibung, value_wert;
    
//-----------------------------------------------------------------------    
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
//----------------------------------------------------------------------- 
        
        // Definition TextView         
        
        beschreibung =(TextView)findViewById(R.id.TextView01);  
        
        value_wert =(TextView)findViewById(R.id.TextView02); 
        
//-----------------------------------------------------------------------        
        
        // Spinner + Funktion(Auswahl aus Resource values/array.xml)
        
        Spinner s1 = (Spinner) findViewById(R.id.Spinner01);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.auswahl, android.R.layout.simple_spinner_item); 
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        s1.setAdapter(adapter);
        s1.setOnItemSelectedListener(new OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            
        // TextView Ausgabe (Beschreibung)
        beschreibung.setText((CharSequence) parent.getItemAtPosition(position));

        // TextView Ausgabe (value/wert)
        value_wert.setText((CharSequence) parent.getItemAtPosition(position));
      
        }

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

            // Auszuführender Befehl Nichts tun

        }
    });  
        
//-----------------------------------------------------------------------        

    }
}