java我的列表只显示spinner中的前两项
我从服务器上得到一个包含两个时区的列表,分别是美国和加拿大。加拿大的Id为1,美国的Id为2。该列表包含字符串id和其他一些字符串。我需要在spinner中列出该字符串id,这就是为什么我要创建一个只包含我需要的字符串的新列表。
我把国家的id放在一个switch
语句中,它应该把列表放在spinner
中,它工作得很好。但它只显示列表中的前两项
for (int i = 0; i < list.size(); i++)
listCountryId.add(list.get(0).getTimeZoneModelList().get(i).getId());
所以基本上我的想法是从服务器循环遍历我的列表,因为在那个列表中我总是只有两个列表,在这种情况下,我循环遍历第一个列表。这就是我硬编码的原因。当我调试时,我可以看到我的getTimeZoneModelList()
包含完整的列表,但当我调试listCountryId()
时,它只包含前两项
这是我的全部代码:
private void setUpSpinner() {
switch (model.getCountry().getCoutryId()) {
case 1:
for (int i = 0; i < list.size(); i++)
listCountryId.add(list.get(0).getTimeZoneModelList().get(i).getId());
ArrayAdapter<String> adapterMembers = new ArrayAdapter<>(context, 安卓.R.layout.simple_spinner_item, listCountryId);
adapterMembers.setDropDownViewResource(安卓.R.layout.simple_spinner_dropdown_item);
binding.timezoneSpinner.setAdapter(adapterMembers);
Log.i(TAG, "lista idjeva: " + Arrays.toString(listCountryId.toArray()));
break;
case 2:
for (int i = 0; i < list.size(); i++) {
listCountryId.add(list.get(1).getTimeZoneModelList().get(i).getId());
}
ArrayAdapter<String> adapter = new ArrayAdapter<>(
context, 安卓.R.layout.simple_spinner_item, listCountryId);
adapter.setDropDownViewResource(安卓.R.layout.simple_spinner_dropdown_item);
binding.timezoneSpinner.setAdapter(adapter);
Log.i(TAG, "lista idjeva: " + Arrays.toString(listCountryId.toArray()));
break;
}
}
# 1 楼答案
这是因为你的循环确实运行了两次。应该是的
更好的是:
第二种方法更有效