2016-05-31 84 views
0

我通過json從webservice填充微調器。微調器被填充,設置索引0的選擇,onitemselected方法觸發並啓動另一個方法來根據微調器中的值填充列表視圖。微調器選擇是更新微調器項目之前的記錄

當我用不同的數據填充微調框時會出現問題。微調器被填滿,索引0的選擇被設置,在被選中的火焰上,當我輸出選擇的項目時,它顯示0索引處的前一項目。 spinneritems.get抓取舊數據而不是新填充的數據。

這裏充滿着微調

for (int i = 0; i < recordsArray.length(); i++) { 
    JSONObject record = recordsArray.getJSONObject(i); 
    Map<String, String> datum = new HashMap<String, String>(2); 
    datum.put("code", record.getString("id") + " - " + record.getString("heading")); 
    datum.put("description", record.getString("body")); 
    spinneritems.add(datum); 
    adapter.notifyDataSetChanged(); 
    spinner.setSelection(0); 
} 

它導致的

spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {  
       populateList(page); 
      } 

燒製,然後調用與

final Spinner spinner = (Spinner)findViewById(R.id.comSpinner); 
String spinnerItem = spinneritems.get(spinner.getSelectedItemPosition()).get("code"); 

的方法這一切都正常工作的第一次運行,但是當我執行更改微調器內容的操作時,最後的方法仍會抓取舊數據由於某種原因,

回答

1

解決了它。在開始設置適配器之前,我會做以下操作

final Spinner spinner = (Spinner) findViewById(R.id.comSpinner); 
spinneritems.clear(); 
adapter.notifyDataSetChanged(); 
spinner.setAdapter(adapter); 
相關問題