【发布时间】:2016-10-12 15:39:05
【问题描述】:
我有两个微调器,第一个微调器与第二个微调器相关。
我正在使用 JSON 来填充它们的适配器。
当我开始活动时,两个适配器都已经填充了正确的数据(第一个和第二个适配器是相关的)。
但是,当我尝试更改第一个微调器的项目位置时,第二个微调器的适配器仍然包含第一个加载的数据。
我想要的是,当第一个微调器的项目位置发生变化时,第二个微调器的适配器可以动态包含与第一个微调器相关的数据。
我不知道是什么问题,我真的需要一些帮助。
这是我的代码:
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
public void onItemSelected (AdapterView < ? > parent, View view,int position, long id){
try {
JSONObject json = result.getJSONObject(position);
result = json.getJSONArray("all_state");
state.clear();
for (int i = 0; i < result.length(); i++) {
try {
JSONObject json2 = result.getJSONObject(i);
state.add(json2.getString("state"));
} catch (JSONException e) {
e.printStackTrace();
}
}
} catch (JSONException e) {
e.printStackTrace();
}
adapter = new ArrayAdapter<>(ViewState.this, R.layout.spinner_state, state);
adapter.notifyDataSetChanged();
spinner2.setAdapter(adapter);
}
@Override
public void onNothingSelected (AdapterView < ? > parent){
}
});
【问题讨论】:
-
尝试更改适配器 = new ArrayAdapter(ViewState.this, R.layout.spinner_state, state);适配器.notifyDataSetChanged(); spinner2.setAdapter(适配器);到 adpater = null;适配器 = new ArrayAdapter(ViewState.this, R.layout.spinner_state, state);适配器.notifyDataSetChanged(); spinner2.setAdapter(适配器);
-
@JhamanDas,请勿在评论部分发布答案,它们旨在提供建议或要求 OP 澄清。
-
@JhamanDas,这仍然不是答案,我已经尝试过了。 :(
标签: android json spinner adapter