Remove these lines first from doInBackground method. No need to create separate arraylist here..
worldlist.add(jsonobject.optString("syllabus"));
worldlist2.add(jsonobject.optString("grade"));
worldlist3.add(jsonobject.optString("subject"));
Declare these arraylist globally...
ArrayList<String> syllabuslist;
ArrayList<String> gradlist;
ArrayList<String> subjectlist;
and initialize these spinner in OnCreate method before calling Async task(DownloadJSON())
Spinner mySpinner = (Spinner) findViewById(R.id.syllabus);
Spinner mySpinner2 = (Spinner) findViewById(R.id.grade);
Spinner mySpinner3 = (Spinner) findViewById(R.id.subject);
Now set spinner in onPostExecute() method....remove extra code you have written in onPostExcute...just copy my code
@Override
protected void onPostExecute(Void args) {
// Spinner adapter
syllabuslist = new ArrayList<String>();
for (Results bean : world) {
syllabuslist.add(bean.getSyllabus());
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, syllabuslist);
adapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mySpinner.setAdapter(adapter);
mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> arg0, View arg1,
int arg2, long arg3) {
String syllabus_name = mySpinner.getItemAtPosition(arg2).toString();
gradlist = new ArrayList<String>();
for (int i
manpreet
Best Answer
2 years ago
I am putting my data in spinners.Data is coming from URL.How to make spinner so that when syllabus is ICSE is chosen it reflect only those grade, subject which has ICSE?
My JSON