2016-11-13 2 views
0

Ich muss ständig meinen Spinner aktualisieren, nachdem ich Daten hinzugefügt habe, die es zeigt.
Teil meines Code:Aktualisieren von Spinner mit SQLite-Datenbank

public class MainActivity extends AppCompatActivity { 
ArrayAdapter<String> adapter; 
Spinner spinner; 

protected void onCreate(Bundle savedInstanceState) { 
ArrayList<String> categories = databaseHelper.getAllCategories(); 
spinner = (Spinner) findViewById(R.id.spinner); 
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, categories); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinner.setAdapter(adapter); 
} 

In DatabaseHelper Klasse, mache ich einfache Abfrage, die eine Spalte auswählt.

Antwort

2
public class MainActivity extends AppCompatActivity { 
ArrayAdapter<String> adapter; 
Spinner spinner; 
ArrayList<String> categories; 

protected void onCreate(Bundle savedInstanceState) { 
categories = databaseHelper.getAllCategories(); 
spinner = (Spinner) findViewById(R.id.spinner); 
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, categories); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinner.setAdapter(adapter); 
} 

private function updateSpinner(){ 
    categories.clear(); 
    categories.addAll(databaseHelper.getAllCategories()); 
    adapter.notifyDataSetChanged(); 
} 
+0

Vielen Dank, Bruder! :) – Mariachi

+1

Sollten Sie diese Methode aufrufen? Und 'categories.add' könnte durch' adapter.addAll' mit der Liste als Parameter –

+0

@Mariachi ersetzt werden. Betrachte @ cricket_007 Kommentar auch. Stattdessen können Sie durch "adapter.addAll" ersetzen. Ich werde die Antwort aktualisieren und nicht vergessen, die Antwort zu akzeptieren (Tick-Symbol). – mismanc

Verwandte Themen