English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Detailierte Erklärung und Beispielcode des Android Spinner und des Adapter-Patterns

Kürzlich habe ich bei einem Projekt den Android Spinner verwendet und hier eine kleine Beispielanwendung geschrieben, um zu testen, wie man ihn verwendet.

Spinner

ist eine Dropdown-Liste. Ziehen Sie einen Spinner-Kontrollkästchen in die Android-Oberfläche und setzen Sie im Attribut Android:entries=“@array/spinner_data"
Dabei ist spinner_data ein Array, das im string definiert ist. Das Array enthält festgelegte Werte. Zu diesem Zeitpunkt kann die Dropdown-Liste auf der Oberfläche eingerichtet werden.

<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"/> 

Natürlich kann man, um eine gute Benutzererfahrung zu gewährleisten, die Eigenschaft android:spinnerMode="dialog" setzen, was eine Pop-up-Liste für die Dropdown-Liste ermöglicht.

Adapter:

Der Adapter ist verantwortlich für die Extraktion von Daten aus der Datenquelle und das Übertragen an verschiedene UI-Komponenten. Der Hauptadapter adapter besteht aus ArrayAdapter und BaseAdapter. Der Adapter ist verantwortlich für das Übertragen von Daten aus einer bestimmten Datenquelle wie einem Array an einen Spinner und das Anzeigen auf der Oberfläche.

Zunächst wird die Datenquelle definiert

private String[] ss=new String[]{ 
    "Katze", 
    "Tiger", 
    "Löwe", 
  }; 

Datenquelle2

private List<String> list=new ArrayList<String>(); 
list.add("百度"); 
    list.add("腾讯"); 
    list.add("阿里巴巴"); 

Zweitens wird eine Klasse Myadapter definiert, die von der abstrakten Klasse BaseAdapter abgeleitet wird, und vier abstrakte Methoden hat.

private class Myadapter extends BaseAdapter{ 
  @Override 
  public int getCount</span>() { 
    // TODO Auto-generierter Methodenstummel 
    return ss.length; 
  } 
  @Override 
  public Object getItem(int position) { 
    // TODO Auto-generierter Methodenstummel 
    return null; 
  } 
  @Override 
  public long getItemId(int position) { 
    // TODO Auto-generierter Methodenstummel 
    return 0; 
  } 
  @Override 
  public View getView</span>(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generierter Methodenstummel 
    TextView textView = new TextView(MainActivity.this); 
    textView.setText(ss[position]); 
    return textView; 
  } 

Dann im Hauptprogramm

Spinner spinner = (Spinner) findViewById(R.id.spinner;1); 
    BaseAdapter adapter = new Myadapter(); 
    spinner.setAdapter(adapter); 

Zuerst finden Sie das Spinner-Steuerlement und instantiieren Sie ein neues Adapter. Verwenden Sie den Adapter, um Daten aus der Datenquelle ss abzurufen.

Der wichtigste Methoden der BaseAdapter-Adapter sind getcount() und getview() Methode. Der前者 gibt die Länge der Datenquelle zurück, der Letztere führt einige Operationen durch.

Natürlich kann man den einfacheren ArrayAdaper-Adapter verwenden.

Spinner spinner = (Spinner) findViewById(R.id.spinner;1); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ss); 
    spinner.setAdapter(adapter); 

Mit diesen Anweisungen können Sie direkt im Array ss positionieren.

Vielen Dank für das Lesen, ich hoffe, es kann Ihnen helfen, danke für Ihre Unterstützung dieser Website!

Möchten Sie auch