将适配器设置为微调器后数据更改



我的数据在设置为微调器适配器后始终获得大小"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();

希望对您有所帮助!!

相关内容

  • 没有找到相关文章

最新更新