2012-06-03 1 views
8

Ich habe einen Drehfeld mit drei Elementen und ich verwende eine XML-Zeichenfolge-Array-Ressource, um es zu füttern. Wenn Sie eine Aktivität öffnen, zeigt der Spinner normalerweise das erste Element an, das sich in der Array-Liste befindet. Ich möchte das ändern und den Text "Select one" im Spinner anzeigen, bevor ein Element ausgewählt wird.Legen Sie den Text des Drehfelds fest, bevor Element ausgewählt wird

Wie kann ich das tun?

+0

Mögliches Duplikat von [Wie man einen Android Spinner Witz macht h erster Text "Select One"] (http://stackoverflow.com/questions/867518/how-to-make-an-android-spinner-with-initial-text-select-one) – blahdiblah

Antwort

9

Sie können, dass eine von zwei Arten tun.

1) Fügen Sie "Select One" als erstes Element in Ihrem XML hinzu und programmieren Sie Ihren Listener so, dass er dies als Auswahl ignoriert.

2) Erstellen Sie einen benutzerdefinierten Adapter es als erste Zeile einzufügen,

EDIT

In Ihren Ressourcen

<string-array name="listarray"> 
    <item>Select One</item> 
    <item>Item One</item> 
    <item>Item Two</item> 
    <item>Item Three</item> 
</string-array> 

In Ihrem onItemSelected Zuhörer:

spinnername.setOnItemSelectedListener(new OnItemSelectedListener() { 
@Override 
    public void onNothingSelected(AdapterView<?> parent) { 
    } 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
     if (pos == 0) { 
     }else { 
      // Your code to process the selection 
     } 
    } 
}); 
+0

Gibt es eine Möglichkeit, es aus einer Zeichenfolge-Ressource einzufügen? – JohnD

+0

Ja, fügen Sie es einfach als ersten Eintrag in Ihrer Array-Ressource hinzu. Ich habe meine Antwort bearbeitet, um ein Beispiel zu geben. – Barak

+0

Hat das Ihr Problem gelöst? – Barak

1

Um einen Standardtext für den Spinner festzulegen, müssen Sie android:[email protected]/SelectOne für Ihr Spinner verwenden, wobei SelectOne in Ihrer string.xml definiert ist.

Beispiel:

<Spinner android:id="@+id/spinnerTest" 
android:layout_marginLeft="50px" 
android:layout_width="fill_parent"     
android:drawSelectorOnTop="true" 
android:layout_marginTop="5dip" 
android:prompt="@string/SelectOne" 
android:layout_marginRight="30px" 
android:layout_height="35px" 
/> 
+0

Nicht was der OP wollte. Er will es im Spinner, nicht als Header dafür. – Barak

+0

Ja, das stimmt. – JohnD

+1

überprüfen Sie diesen Beitrag, es gibt Miltitude Weg zu tun, was Sie wollen. http://stackoverflow.com/questions/867518/how-to-make-an-android-spinner-with-initial-text-select-one – 113408

Verwandte Themen