Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java,根据选定的州获取城市_Java_Android_Maps - Fatal编程技术网

Java,根据选定的州获取城市

Java,根据选定的州获取城市,java,android,maps,Java,Android,Maps,我在Android应用程序中有两个旋转框。第一个微调器框是美国不同州的字符串数组。我希望第二个微调器填充选定州内的城市 我怎样才能得到这些城市的名单?我可以使用一些API吗?我是否需要包含此数据的预定义CSV文件,以便将其导入SQLite数据库 编辑: 接下来,我将继续将我想做的事情融入其中。我将JSON从端点推送到字符串中,然后最终推送到JSONArray: inStream = httpConnection.getInputStream();

我在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 cities=new ArrayList();
试一试{
int rootSize=jsonArray.length();
for(int i=0;i
拿着ArrayList,我使用列表适配器并将其绑定到我的cities微调器。完成了!:

    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);
ArrayAdapter spinnerayadapter=新的ArrayAdapter(上下文,android.R.layout.simple\u微调器项目,城市);
spinnerrayadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//下拉视图
设置适配器(spinnerrayadapter);

我建议使用SBA.gov API。这里是链接

具体来说,您可能需要使用该端点


继续并单击上面的链接,您将能够看到返回的数据。它会在TX中返回所有城市。你认为城市是什么?在你不想展示一个城市之前,它需要有多小?对于大城市,你是想把大城市区显示为一个城市,还是想把郊区/远郊区分开列出?尽管如此,API可能会满足你的需要。伙计,这正是我所需要的!非常感谢你!没问题,如果您在解析JSON或打电话时遇到任何问题,请立即询问stackoverflow并标记我!SBA API参考页已更改,现在API调用本身仍然有效。此链接也不起作用。我们需要任何可靠的地方,从那里我可以得到州和镇以及他们的关系。