2017-04-03 62 views
1

嘗試用創建片段之後才檢索到的數據填充微調器。裏面OnCreateView測試數據的工作原理:如何在已創建片段後在Spinner上創建/設置ArrayAdapter數據

datesSpinner = (Spinner)rootView.findViewById(R.id.calldatesspinner); 
    /* 
    String[] testData = { "Abc", "Def", "Ghi", "Jkl" }; 
    ArrayList<String> xVals = new ArrayList<>(); 
    for (int i = 0; i < testData.length; i++) 
     xVals.add(testData[i]); 
    dataAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_dropdown_item, testData); 
    datesSpinner.setAdapter(dataAdapter); 
    */ 

但是當我嘗試了數據檢索後設置適配器上的微調我沒有得到任何錯誤只是一個空白微調?我註釋掉測試ArrayAdapter,創造了一個ArrayAdapter的數據&給了它一個新的ArrayList然後嘗試設置它像我在OnCreateView做:

public void setSpinnerAdapter() { 
    for (int i = 0; i < datesPulled.size(); i++) { 
     System.out.println("Populating spinner: " + datesPulled.get(i)); 
    } 

    System.out.println("finished for loop"); 
    dataAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_dropdown_item, datesPulled); 
    System.out.println("create array adapter"); 
    datesSpinner.setAdapter(dataAdapter); 
} 

的logcat的是

04-03 14:18:02.412 9671-9671/? I/System.out: Populating spinner: 2017-05-01 
04-03 14:18:02.412 9671-9671/? I/System.out: Populating spinner: 2017-06-01 
04-03 14:18:02.412 9671-9671/? I/System.out: Populating spinner: 2017-07-01 
04-03 14:18:02.412 9671-9671/? I/System.out: Populating spinner: 2017-08-01 
04-03 14:18:02.413 9671-9671/? I/System.out: finished for loop 

我認爲有是一個活動分片界面的問題,但logcat告訴我它工作正常。我試圖用&清除測試適配器,用新的ArrayList重置它,讓第一個適配器&創建第二個適配器,notifyDataSetChanged()等,但沒有運氣。出於某種原因,我不能創建/設置一個新的ArrayAdapter,但我不明白爲什麼?

+0

在片段的'onViewCreated()' – rafsanahmad007

+0

中調用setadapter()方法您是否在ui線程中設置適配器? –

+0

使用onViewCreated得到它,現在我可以看到創建的ArrayAdapter。感謝@ rafsanahmod007的回覆 – JC23

回答

0

我想你使用的是錯誤的佈局的項目,試試這個:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(
     this, 
     android.R.layout.simple_list_item_1, 
     testData 
); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinner.setAdapter(adapter); 

需要注意的是微調需要展開視圖和摺疊視圖佈局。