数据已更改将Adapter设置为Spinner后

时间:2018-05-17 06:51:25

标签: android

我的数据总是变得大小' 1'设置为Spinner适配器后。我使用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

2 个答案:

答案 0 :(得分:0)

如果您想知道有多少项绑定到微调器,您应该调用:

spinnerProvince.getAdapter().getCount()

答案 1 :(得分:0)

在您的日志中,您试图通过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());

我从here得到了引用,我发现没有这样的方法来返回微调项目计数。

尝试这样做

Adapter adapter= (Adapterspinner )listProvinsi.getadapter();
int count = adapter.getCount();

希望它能帮到你!!