English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Recentemente ho lavorato su un progetto che utilizza Android Spinner, ecco un piccolo esempio per illustrare come utilizzarlo.
Spinner
È una lista a discesa, trascinare un controllo Spinner nell'interfaccia Android e impostare l'attributo Android:entries=“@array/spinner_data”
Dove spinner_data è un array definito in string. L'array contiene valori prefissati. A questo punto è possibile configurare la lista a discesa nell'interfaccia.
<Spinner android:id="@+id/spinner1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView1" android:layout_below="@+id/textView1" android:layout_marginTop="17dp" android:entries="@array/spinner_data"/>
Naturalmente, per migliorare l'esperienza utente, è possibile impostare l'attributo android:spinnerMode="dialog" per rendere la lista a discesa con una finestra弹出框.
Adattatore:
L'adattatore è responsabile di estrarre i dati dalla sorgente dati e trasmetterli a vari componenti UI. Gli adapter principali sono ArrayAdapter e BaseAdapter. Gli adapter sono responsabili di ottenere dati da una sorgente dati come un array e trasmetterli a un Spinner per visualizzarli nell'interfaccia utente.
Prima definire la sorgente dati
private String[] ss=new String[]{ "Gatto", "Tigre", "Lupo", };
Sorgente dati 2
private List<String> list=new ArrayList<String>(); list.add("百度"); list.add("腾讯"); list.add("阿里巴巴");
Altra definizione di una classe Myadapter che eredita dall'astratto BaseAdapter, con quattro metodi astratti.
private class Myadapter extends BaseAdapter{ @Override public int getCount() { // TODO Auto-generated method stub return ss.length; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub TextView textView = new TextView(MainActivity.this); textView.setText(ss[position]); return textView; }
Poi nel main function
Spinner spinner = (Spinner) findViewById(R.id.spinner1); BaseAdapter adapter = new Myadapter(); spinner.setAdapter(adapter);
Prima trovare il controllo Spinner e istanziare un nuovo adapter. Attraverso l'adattatore adapter catturare i dati dalla sorgente dati ss.
Il metodo più importante dell'adattatore BaseAdapter è getcount() e il metodo getview(). Il primo restituisce la lunghezza della sorgente dati, il secondo esegue alcune operazioni.
Naturalmente, è possibile utilizzare un adattatore ArrayAdaper più semplice.
Spinner spinner = (Spinner) findViewById(R.id.spinner1); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ss); spinner.setAdapter(adapter);
Tramite queste istruzioni, è possibile localizzare direttamente nell'array ss.
Grazie per aver letto, spero che possa aiutarvi, grazie per il supporto al nostro sito!