2017-01-05 56 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。

如果爲ListView使用數組,然後添加一個步驟(如果需要)重建數組並使用notifyDataSetChanged(只有在csr是ListView的源時才能使用swapCursor)。

例如(雖然這改變另一個微調的適配器(微調的列表視圖和一刀都是相似的,其實我在某些情況下)使用兩個單個適配器)

 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