Java,根据选定的州

时间:2015-04-29 22:33:51

标签: java android maps

我在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);

0 个答案:

没有答案