我的数据在设置为微调器适配器后始终获得大小"1"。我用SearchableSpinner
来显示数据。
final SearchableSpinner spinnerProvince = selectLocation8v.getSpinnerProvince();
final ArrayList<String> arrayProvince = new ArrayList<>();
final ArrayList<String> arrayKota = new ArrayList<>();
final ArrayList<String> arrayKecamatan = new ArrayList<>();
final ArrayList<State> listProvinsi = lisaDbHelper.getStates();
for (int p = 0; p < listProvinsi.size(); p++) {
arrayProvince.add(listProvinsi.get(p).getName());
}
ArrayAdapter provinceAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_item, arrayProvince);
provinceAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerProvince.setAdapter(provinceAdapter);
System.out.println("Data count before set to adapter : " + provinceAdapter.getCount()); // 34
System.out.println("Data count after set to adapter : " + spinnerProvince.getAdapter().getCount()); // 1
如果你想知道有多少项目绑定到微调器,你应该调用:
spinnerProvince.getAdapter().getCount()
在您的日志中,您试图通过spinnerProvince.getCount()
获取微调器中的项目数,但这不会返回实际值。
替换此代码
System.out.println("Data count after set to adapter : " + spinnerProvince.getCount());
自
System.out.println("Data count after set to adapter : " + spinnerProvince.getAdapter().getCount());
我从这里得到了参考,我发现没有这样的方法来返回微调器项目计数。
尝试这样做
Adapter adapter= (Adapterspinner )listProvinsi.getadapter();
int count = adapter.getCount();
希望对您有所帮助!!