2014-07-18 18 views

risposta

18

È possibile utilizzare semplice ArrayAdapter predefinita per raggiungere la vostra esigenza in modo dinamico. Di seguito è riportato lo snippet di codice che è possibile seguire e modificare il metodo onCreate per aggiungere valori nella casella di selezione.

spinner = (Spinner) findViewById(R.id.spinner); 
    ArrayAdapter<String> adapter; 
    List<String> list; 

    list = new ArrayList<String>(); 
    list.add("Item 1"); 
    list.add("Item 2"); 
    list.add("Item 3"); 
    list.add("Item 4"); 
    list.add("Item 5"); 
    adapter = new ArrayAdapter<String>(getApplicationContext(), 
      android.R.layout.simple_spinner_item, list); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 

se si desidera che i valori Spinner da aggiungere staticamente è possibile aggiungere la matrice nel file XML e assegnare l'attributo entries per la filatrice. di seguito è riportato lo snippet di codice per questo.

Il file di layout xml

<Spinner android:id="@+id/spinner" 
    android:layout_width="fill_parent"     
    android:drawSelectorOnTop="true" 
    android:prompt="@string/spin" 
    android:entries="@array/items" /> 

Nel file arrays.xml

<string-array name="items"> 
    <item>Item 1</item> 
    <item>Item 2</item> 
    <item>Item 3</item> 
    <item>Item 4</item> 
    <item>Item 5</item> 
</string-array> 
+0

Questo codice non funziona –

+0

@DacSaunders Ok !!! – Setu

2

Il riferimento Android ha un buon esempio e invece di usare:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, 
    R.array.planets_array, android.R.layout.simple_spinner_item); 

come indicato nella exa mple (questo è perché il Spinner è popolata da una risorsa di stringa-array preesistente definita in un file XML) è possibile utilizzare il ArrayAdapter costruttore che accetta un elenco come argomento, come mostrato a:

http://developer.android.com/reference/android/widget/ArrayAdapter.html#ArrayAdapter%28android.content.Context,%20int,%20java.util.List%3CT%3E%29

si potrebbe fare questo in questo modo:

ArrayAdapter<String> mArrayAdapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.your_layout,mYourList) 

dove mYourList potrebbe essere un ArrayList<String> dove è possibile memorizzare i dati che si desidera popolare il 0.123.con.

Problemi correlati