2017-01-05 7 views
1

は私のスピナー活動です:スピナーを使用してsqliteデータをフィルタリングするにはどうすればいいですか?ここ

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.item_listview); 

    myspinner = (Spinner)findViewById(R.id.spinnertype); 

    ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.type_arrays,R.layout.support_simple_spinner_dropdown_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    myspinner.setAdapter(adapter); 
    myspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

     (i assume its some kind of setfilter here) 

     } 


     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 
     } 
    }); 

} 

私の文字列リソースファイルの下で、私は、ドロップダウンスピナーとして約5項目(すべて、果物、肉、乳製品、ベジ)を持っています。 「フル」を押したときにリストビューにすべてが表示され、「フルーツ」が押されたときに他のタイプを除外したい。

スピナー専用の別のカスタムアダプターを作成する必要はありますか?

答えて

1

適切なWHERE句を設定して、ListViewのクエリをやり直してから、yourListViewAdapter.swapCursor(yourcsr)またはyourListViewAdapter.notiftDataSetChangedを使用すると、ListViewが更新されます。

リストビュー用の配列を使用している場合は、必要に応じてステップを追加して配列を再構築し、notifyDataSetChanged(swapCursorはcsrがListViewのソースである場合のみ使用可能)を使用します。

あなたのコードのために

 shopspinner.setOnItemSelectedListener(
       new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> adapterView, View view, 
             int position, long rowid) { 
       currentshopid = rowid; 
       aislefilter = AISLESHOPREF_COLUMN + " = " + 
         Long.toString(currentshopid); 
       alcsr = dbaislemethods.getAisles(aislefilter,aisleorderby); 
       aislelistadapter.swapCursor(alcsr); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> adapterView) { 

      } 
     }); 
+0

ありがとう(これは別のスピナーのアダプタを変更するものの(スピナーのとリストビューは、実際に私はいくつかの例)の両方のための単一のアダプターを使用し、帖似ています)。私はあなたに私に言っているという考えを持っていました。私は自分のコードでそれを動作させる – Sarah

関連する問題