作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在 Android 应用程序中有两个微调框。第一个微调框是美国不同州的字符串数组。我希望第二个微调器填充所选州内的城市。
我怎样才能得到这些城市的列表?我可以使用一些 API?我是否需要包含此数据的预定义 CSV 文件,以便将其导入 SQLite 数据库?
编辑:作为对此的后续,这就是我如何继续整合我想做的事情。我将来自端点的 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,我使用列表适配器并将其绑定(bind)到我的城市微调器。完成!:
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);
最佳答案
我建议使用 SBA.gov API。这是链接 SBA API STATE AND CITY
具体来说这个端点可能是你需要使用的http://api.sba.gov/geodata/city_links_for_state_of/tx.json
继续并单击上面的链接,您将能够看到返回的数据。它返回 TX 内的所有城市。
关于Java,根据所选状态获取城市,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29955759/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!