尝试使用在创建片段之后检索的数据填充微调器。测试数据在OnCreateView中运行:
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&amp;给它一个新的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告诉我它工作正常。我尝试用&amp;清除测试适配器使用新的ArrayList重置它,保留第一个适配器&amp;创建第二个适配器,notifyDataSetChanged()等,但没有运气。出于某种原因,我无法创建/设置新的ArrayAdapter,但我不明白为什么?
答案 0 :(得分: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);
请注意,微调器需要扩展视图和折叠视图的布局。