我在Android应用程序中有两个微调框。第一个微调框是美国不同状态的字符串数组。我希望第二个微调器填充选定状态中的城市。
如何获取这些城市的列表?我可以使用一些API吗?我是否需要包含此数据的预定义CSV文件,以便将其导入SQLite DB?
修改 接下来,我将继续介绍我想要做的事情。我将JSON从端点推送到字符串,然后最终推送到JSONArray:
inStream = httpConnection.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inStream));
StringBuilder sb = new StringBuilder();
String line;
//sb.append("{\"cities\":");
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
br.close();
jsonArray = new JSONArray(sb.toString());
//sb.append("}");
jsonArray = new JSONArray(sb.toString());
从那里,我循环遍历数组,并将城市的每个“名称”放入一个ArrayList:
ArrayList<String> cities = new ArrayList<>();
try {
int rootSize = jsonArray.length();
for (int i = 0; i < rootSize; i++){
JSONObject inner = jsonArray.getJSONObject(i);
//String firstChildren = inner.getString("name");
cities.add(inner.getString("name"));
//double secondChildren = inner.getDouble(1);
}
} catch (JSONException e) {
e.printStackTrace();
}
Collections.sort(cities);
return cities;
使用ArrayList,我使用了列表适配器并将其绑定到我的城市微调器。完成:
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_item, cities);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // The drop down view
spnrCity.setAdapter(spinnerArrayAdapter);