Java 创建另一个ArrayList以在Android中填充微调器
我需要创建另一个带有字符串值的ArrayList来填充状态微调器。初始化应用程序时,状态微调器视图显示空白数据 按照下面的代码操作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;
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我可以这样做吗?