2016-10-28 3 views
0

im neu hier, sorry zu setzen, wenn ich unten etwas zu tun Idiot Frage,ANDROID> Wie JSON-Daten mit Spinner

die für Issues

i bereits eine App wie das schaffen, und alle der Wert in der in diesem link

und dies geschieht, wenn die Anwendung ausgeführt wird, Spinner

aber i "ardie halim" wählen, ob jemand einstellen Spinner durch JSON erhalten wollen th e 2. Spinner nur "mobile Entwickler", und wenn jemand wählen "indah" der zweite Spinner zeigt "Datenbank Oracle", und so weiter

Ich habe versucht, das Tutorial von go * gle zu finden, aber ich weiß nicht, was das Richtige keyword, um herauszufinden,

FYI über meinen Code MainActivity.java

import android.os.AsyncTask; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.ArrayAdapter; 
import android.widget.Spinner; 
import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.util.ArrayList; 
public class MainActivity extends AppCompatActivity { 
    ArrayList<String> listItems=new ArrayList<>(); 
    ArrayAdapter<String> adapter; 
    Spinner sp; 
    ArrayList<String> listItems2=new ArrayList<>(); 
    ArrayAdapter<String> adapter2; 
    Spinner sp2; 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     sp=(Spinner)findViewById(R.id.spinner); 
     sp2=(Spinner)findViewById(R.id.spinner2); 
     adapter= new ArrayAdapter<>(this, R.layout.spinner_layout, R.id.txt, listItems); 
     adapter2= new ArrayAdapter<>(this, R.layout.spinner_layout, R.id.txt, listItems2); 
     sp.setAdapter(adapter); 
     sp2.setAdapter(adapter2); 
    } 
    public void onStart(){ 
     super.onStart(); 
     BackTask bt=new BackTask(); 
     bt.execute(); 
    } 
    private class BackTask extends AsyncTask<Void,Void,Void> { 
     ArrayList<String> list; 
     ArrayList<String> list2; 
     protected void onPreExecute(){ 
      super.onPreExecute(); 
      list=new ArrayList<>(); 
      list2=new ArrayList<>(); 
     } 
     protected Void doInBackground(Void...params){ 
      InputStream is=null; 
      String result=""; 
      try{ 
       HttpClient httpclient=new DefaultHttpClient(); 
       HttpPost httppost= new HttpPost("http://zxccvvv.netne.net/dosen.php"); 
       HttpResponse response=httpclient.execute(httppost); 
       HttpEntity entity = response.getEntity(); 
       // Get our response as a String. 
       is = entity.getContent(); 
      }catch(IOException e){ 
       e.printStackTrace(); 
      } 

      //convert response to string 
      try{ 
       BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8")); 
       String line; 
       while ((line = reader.readLine()) != null) { 
        result+=line; 
       } 
       is.close(); 
       //result=sb.toString(); 
      }catch(Exception e){ 
       e.printStackTrace(); 
      } 
      // parse json data 
      try{ 
       JSONArray jArray =new JSONArray(result); 
       for(int i=0;i<jArray.length();i++){ 
        JSONObject jsonObject=jArray.getJSONObject(i); 
        // add interviewee name to arraylist 
        list.add(jsonObject.getString("nama_dosen")); 
        list2.add(jsonObject.getString("mat_kul")); 
       } 
      } 
      catch(JSONException e){ 
       e.printStackTrace(); 
      } 
      return null; 
     } 
     protected void onPostExecute(Void result){ 
      listItems.addAll(list); 
      listItems2.addAll(list2); 
      adapter.notifyDataSetChanged(); 
      adapter2.notifyDataSetChanged(); 
     } 
    } 
} 
+0

Ihre json Ausgang hinzufügen whic h Sie möchten in Spinner hinzufügen –

+0

@AshishKudale, was es bedeutet, mein Herr? Kannst du ein Beispiel geben? Ich dachte, es ist gut, eine "if else" -Funktion hinzuzufügen, aber ich weiß nicht, wo sollte ich 'if else' Code in meinem Projekt setzen – yudi

+0

zeigen Sie einfach Ihre JSON-Daten hier –

Antwort

0
sp.setOnItemSelectedListener(new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
     // your code here 
     if(list.get(position).equals("ardie halim")){ 
      listItems2.clear(); 
      listItems2.add("mobile developer"); 
      adapter2.notifyDataSetChanged(); 
     } 
     else if(list.get(position).equals("indah")){ 
      listItems2.clear(); 
      listItems2.add("database oracle"); 
      adapter2.notifyDataSetChanged(); 
     } 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> parentView) { 
     // your code here 
    } 

}); 
+0

Wenn ich deinen Code oben gelesen habe, denke ich, dass er funktioniert, aber ich weiß nicht, wo ich den Code einfügen soll? ?, aber danke @MuhammadChhota über Ihren Code, krank finden Sie das Tutorial, wie es funktioniert – yudi

+0

können Sie dies nach sp2.setAdapter (adapter2); –

+0

Ich habe versucht, ur-Code in meinem Projekt, und auch bearbeitet alle Fehler notif mich, aber ich habe keine Idee zu lösen, oder vielleicht ist es möglich, 'if else' Code innerhalb' JsonObject' looping? – yudi