Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.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 创建另一个ArrayList以在Android中填充微调器_Java_Android_Json_Arraylist - Fatal编程技术网

Java 创建另一个ArrayList以在Android中填充微调器

Java 创建另一个ArrayList以在Android中填充微调器,java,android,json,arraylist,Java,Android,Json,Arraylist,我需要创建另一个带有字符串值的ArrayList来填充状态微调器。初始化应用程序时,状态微调器视图显示空白数据 按照下面的代码操作 public class Activity { private Spinner states; private Spinner cities; ArrayList<String> statesList; ArrayList<String> citiesList;

我需要创建另一个带有字符串值的ArrayList来填充状态微调器。初始化应用程序时,状态微调器视图显示空白数据

按照下面的代码操作

public class Activity {

        private Spinner states;
        private Spinner cities;

        ArrayList<String> statesList;
        ArrayList<String> citiesList;

        private void findcomponents() {
            states = (Spinner) findViewById(R.id.spinner_cadastro_estado);
            cities = (Spinner) findViewById(R.id.spinner_cadastro_cidade);

         loadStatesAndCities();

            states.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                      State state = (State) states.getSelectedItem();
                    cities.setAdapter(new ArrayAdapter<>(Activity.this, android.R.layout.simple_spinner_dropdown_item, state.getCities()));
                }

                @Override
                public void onNothingSelected(AdapterView<?> parent) {

                }
            });

            cities.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
            }

    public void loadStatesAndCities() {
        try {
            JSONObject jsonObject = new JSONObject(loadJSONFromAsset());
            JSONArray statesArray = jsonObject.getJSONArray("estados");

            List<City> citiesList;
            List<State> statesList;

            statesList = new ArrayList<>();
            for (int i = 0; i < statesArray.length(); i++) {
                JSONObject states_object = statesArray.getJSONObject(i);
                String estadoSigla = states_object.optString("sigla");

                JSONArray citiesArray = states_object.getJSONArray("cidades");
                citiesList = new ArrayList<>();

                for (int j = 0; j < citiesArray.length(); j++) {
                    String cities_data = citiesArray.getString(j);
                    citiesList.add(new City(cities_data));

                }
                statesList.add(new State(estadoSigla,citiesList));

            }


            ArrayAdapter<State> stateAdapter;
            stateAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, statesList);
            stateAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            states.setAdapter(stateAdapter);


        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    public String loadJSONFromAsset() {
        String json = null;
        try {
            InputStream is = getAssets().open("estados-cidades.json");
            int size = is.available();
            byte[] buffer = new byte[size];
            is.read(buffer);
            is.close();
            json = new String(buffer, "UTF-8");
        } catch (IOException ex) {
            ex.printStackTrace();
            return null;
        }
        return json;
    }
公共课堂活动{
私人纺纱国;
私人纺纱城市;
ArrayList statesList;
ArrayList citiesList;
私有void findcomponents(){
states=(微调器)findViewById(R.id.Spinner\u cadastro\u estado);
城市=(微调器)findViewById(R.id.Spinner\u cadastro\u cidade);
loadStatesAndCities();
states.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
State State=(State)states.getSelectedItem();
setAdapter(新的ArrayAdapter(Activity.this,android.R.layout.simple_spinner_dropdown_项,state.getCities());
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
cities.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
}
州和城市的公共空间(){
试一试{
JSONObject JSONObject=新的JSONObject(loadJSONFromAsset());
JSONArray statesArray=jsonObject.getJSONArray(“estados”);
上市城市名单;
国家名单;
statesList=newarraylist();
对于(int i=0;i
statesList
属于
String
类型,因此在其中添加
String
而不是
State
objectsHow我可以这样做吗?