我正在开发适用于 Android 的应用程序。为此,我正在开展一项活动,您可以在其中选择您的国家,然后在该国家/地区选择一个地点。我有一个微调器,其中包含所有可用国家/地区的列表。现在,我想要它做的是获取已选择的国家/地区,然后过滤我拥有的以已选择的国家/地区开头的项目的地点列表。然后它应该将所选国家/地区的点放入不同的微调器中。为清楚起见,国家列表只是国家列表,地点列表如下所示:
国家 1 - 地点 1
国家 1 - 地点 2
国家 2 - 地点 1
Country2 - Spot2
等等。
这就是我认为代码应该像这样工作:
- 从微调器 1 中获取选定的国家/地区。
- 制作一个包含斑点的新 ArrayList。
- 制作第二个空的 ArrayList。
- 对于包含点的 ArrayList 的每个条目,检查它是否以所选国家/地区开头。
- 如果是这样,请将其添加到第二个 ArrayList。
- 全部完成后,使用第二个 ArrayList 创建一个 ArrayAdapter。
- 为微调器 2 设置此 ArrayAdapter。
我尝试使用以下代码来实现这一点:
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
String selectedCountry = parent.getItemAtPosition(pos).toString();
ArrayList<CharSequence> arraylist = new ArrayList<CharSequence>();
arraylist.addAll(R.array.spots_array);
ArrayList<CharSequence> arraylist2 = new ArrayList<CharSequence>();
for (i=0; i<arraylist.size(); i++) {
String delimiter = " - ";
if ((arraylist(i).split(delimiter)).equals(selectedCountry)) {
arraylist2.add(arraylist(i).string.substring(string.lastIndexOf('-') + 1));
}
}
ArrayAdapter<CharSequence> arrayAdapter2 = ArrayAdapter.createFromResource(this, arraylist2<CharSequence>, android.R.layout.simple_spinner_item);
arrayAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(arrayAdapter2);
spinner2.setOnItemSelectedListener(this);
}
但它给出了几个错误:
- 在 addAll() 它说:“ArrayList 类型中的方法 addAll(int, Collection) 不适用于参数 (int)”
- 在arraylist它说:“方法arraylist(int)未定义类型配置”
- 在字符串(子字符串内部)它说:“字符串无法解析”
我对 Android 还是比较陌生,并且在使其正常工作时遇到了很多麻烦。有人可以帮我吗?