【发布时间】:2016-06-12 06:20:27
【问题描述】:
到目前为止,我正在获取 JSON 并将它们放入 3 个不同的微调器中。但问题是如何根据第一个微调器制作第二个微调器数据和基于第二个微调器的第三个微调器数据。
This is my code for JSON.
try {
// Locate the NodeList name
jsonarray = jsonobject.getJSONArray("results");
for (int i = 0; i < jsonarray.length(); i++) {
jsonobject = jsonarray.getJSONObject(i);
Results worldpop = new Results();
worldpop.setSyllabus(jsonobject.optString("syllabus"));
worldpop.setGrade(jsonobject.optString("grade"));
worldpop.setSubject(jsonobject.optString("subject"));
//worldpop.setFlag(jsonobject.optString("flag"));
world.add(worldpop);
worldlist.add(jsonobject.optString("syllabus"));
worldlist2.add(jsonobject.optString("grade"));
worldlist3.add(jsonobject.optString("subject"));
}
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void args) {
// Locate the spinner in activity_main.xml
final Spinner mySpinner = (Spinner) findViewById(R.id.syllabus);
Spinner mySpinner2 = (Spinner) findViewById(R.id.grade);
Spinner mySpinner3 = (Spinner) findViewById(R.id.subject);
// Spinner adapter
LinkedHashSet<String> listToSet = new LinkedHashSet<String>(worldlist);
//Creating Arraylist without duplicate values
final List<String> worldlistnew = new ArrayList<String>(listToSet);
mySpinner
.setAdapter(new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_dropdown_item,
worldlistnew));
listToSet = new LinkedHashSet<String>(worldlist2);
//Creating Arraylist without duplicate values
final List<String> worldlistnew2 = new ArrayList<String>(listToSet);
mySpinner2
.setAdapter(new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_dropdown_item,
worldlistnew2));
listToSet = new LinkedHashSet<String>(worldlist3);
//Creating Arraylist without duplicate values
final List<String> worldlistnew3 = new ArrayList<String>(listToSet);
mySpinner3
.setAdapter(new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_dropdown_item,
worldlistnew3));
// Spinner on item click listener
mySpinner
.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0,
View arg1, int position, long arg3) {
这里有一些事情要做。
// Results population = (Results) mySpinner.getItemAtPosition(position);
// worldlistnew2.setText("" + population.getGrade());
// worldlistnew3.setText("" + population.getSubject());
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
}
【问题讨论】:
-
您可以根据您的第一个选择过滤您的 JSON 结果,也可以进行网络调用以根据第一个微调器中的选择从服务器获取数据
标签: android arrays json spinner