2016-11-13 6 views
0

Spinnerに表示されるデータを追加した後、Spinnerを常に更新する必要があります。私のコードの
パート:DatabaseHelperクラスでSQLiteデータベースを使用してSpinnerを更新する

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); 
} 

、私は1つの列を選択し、単純なクエリを作ります。

答えて

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

ありがとう、兄さん! :) – Mariachi

+1

あなたはそのメソッドを呼び出すべきですか?そして、 'categories.add'はパラメータとして –

+0

@Mariachi u r welcomeというリストを持つ' adapter.addAll'で置き換えることができます。 @ cricket_007コメントも考慮してください。ループの代わりに 'adapter.addAll'で置き換えることができます。私は答えを更新し、答えを受け入れることを忘れないでください(ティックシンボル)。 – mismanc

関連する問題