2017-02-02 2 views
-1

Ich habe das JsonArray, aber es zeigt nicht in meiner Liste. Ich habe alle benötigten XML-Dateien hinzugefügt.mein Jsonarray zeigt nicht in meiner Arraylist

Mein Volley funktioniert und ich habe eine Antwort mit dem JSonarray, aber mein Problem ist, dass es nicht in der Liste angezeigt wird.

// json array response url 
private String urlJsonArry = "http://api.androidhive.info/volley/person_array.json"; 

private static String TAG = MainActivity.class.getSimpleName(); 


// Progress dialog 
public ProgressDialog pDialog; 
public AppController app ; 


// temporary string to show the parsed response 
private String jsonResponse; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.array_list); 
    ListView listView = (ListView) findViewById(R.id.list); 
    items = new ArrayList<String>(); 
    adapter = new ArrayAdapter(this, R.layout.list_item, R.id.txt, (List) items); 
    listView.setAdapter(adapter); 
    pDialog = new ProgressDialog(this); 
    pDialog.setMessage("Please wait..."); 
    pDialog.setCancelable(false); 

    makeJsonArrayRequest(); 
} 

private void makeJsonArrayRequest() { 

    showpDialog(); 

    JsonArrayRequest req = new JsonArrayRequest(urlJsonArry, 
      new Response.Listener<JSONArray>() { 
       @Override 
       public void onResponse(JSONArray response) { 
        Log.d(TAG, response.toString()); 

        try { 

         for (int i = 0; i < response.length(); i++) { 

           JSONObject person = (JSONObject) response 
             .get(i); 
           items.add(person.getString("name")); 
          Toast.makeText(getApplicationContext(), 
            person.getString("name"), 
            Toast.LENGTH_LONG).show(); 
         } 
        } catch (JSONException e) { 
         e.printStackTrace(); 
         Toast.makeText(getApplicationContext(), 
           "Error: " + e.getMessage(), 
           Toast.LENGTH_LONG).show(); 
        } 

        hidepDialog(); 
       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      VolleyLog.d(TAG, "Error: " + error.getMessage()); 
      Toast.makeText(getApplicationContext(), 
        error.getMessage(), Toast.LENGTH_SHORT).show(); 
      hidepDialog(); 
     } 
    }); 

    // Adding request to request queue 
    app.getInstance().addToRequestQueue(req); 
} 

private void showpDialog() { 
    if (!pDialog.isShowing()) 
     pDialog.show(); 
} 

private void hidepDialog() { 
    if (pDialog.isShowing()) 
     pDialog.dismiss(); 
} 

Also bitte können Sie mir helfen, meine jsonarray in meinem arraylist zu zeigen?

Dank

+0

Willkommen bei Stack-Überlauf! Wir sind eine Frage-und-Antwort-Seite, kein Coder-for-Hire-Service. Bitte erläutern Sie, was Sie bisher versucht haben und warum es nicht funktioniert hat. Siehe: [Warum ist "Kann mir jemand helfen?" keine eigentliche Frage?] (http://meta.stackoverflow.com/q/284236) –

Antwort

0

Sie benötigen adapter.notifyDataSetChanged() nach dem JSON Parsing-Schleife zu nennen.

d.h

     for (int i = 0; i < response.length(); i++) { 

           JSONObject person = (JSONObject) response 
             .get(i); 
           items.add(person.getString("name")); 
          Toast.makeText(getApplicationContext(), 
            person.getString("name"), 
            Toast.LENGTH_LONG).show(); 
         } 
         adapter.notifyDataSetChanged();