2017-01-05 5 views
1

вот моя вертушка активность:Как отфильтровать мои данные sqlite с помощью spinner?

@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 пунктов (все, фрукты, мясо, молочные продукты, овощи) в качестве ниспадающего блесны. Я хочу, чтобы listview появлялся все, когда я нажал «все» и отфильтровал другие типы, когда я нажал «фрукты».

Нужно ли мне создать другой пользовательский адаптер только для счетчика?

ответ

1

Я думаю, что вы просто установите соответствующее предложение WHERE, повторите запрос для ListView, а затем либо используйте yourListViewAdapter.swapCursor(yourcsr), либо yourListViewAdapter.notiftDataSetChanged, который обновит ListView.

Если вы используете массив для ListView, добавьте шаг, если необходимо, перестройте массив и используйте notifyDataSetChanged (swapCursor может использоваться только в том случае, если csr является источником ListView).

например. (Хотя это изменяет адаптер других блесен (Прядильщиков и ListViews являются дестью похожи, на самом деле я использую один адаптер для обоего в некоторых случаях))

 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

Thankyou для вашего кода. У меня есть идея, которую вы пытаетесь мне рассказать. я буду работать с моим кодом – Sarah

Смежные вопросы