2016-08-29 4 views
-1

Ich benutze listviewzeigt Listview JSON AsyncTask Wert auf Android

final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1); 

adapter.add("JSON RESULT VALUE"); 
adapter.add("JSON RESULT VALUE"); 
adapter.add("JSON RESULT VALUE"); 

ListView listView = (ListView) findViewById(R.id.listview); 
listView.setAdapter(adapter); 

xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 
<ListView android:id="@+id/listview" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" /> 
</LinearLayout> 

und JSON meine Quelle.

aber dieser setJSON zeigt textView. Ich möchte ListView anzeigen.

Wie kombiniere ich Listview und JSON TEXT?

+0

Im sorry, aber was ist dein Problem? – RafaelC

+0

Veröffentlichen Sie Ihre JSON-Antwort – VVB

+0

@RafaelCardoso Entschuldigung. Vor kurzem habe ich JSONparser, meine Web-Server Textansicht. aber ich möchte Listenansicht – chohyunwook

Antwort

1

Sie setzen das Ergebnis der asynchronen Aufgabe auf eine Textansicht in der onPostExecute-Methode ersetzen sie durch meinen Vorschlag. Sie müssen diese Ergebnisse zum Listenadapter hinzufügen und diesen Adapter zur Liste hinzufügen.

@Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 


    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1); 

     try { 
      JSONArray arr = new JSONArray(result); 
      for (int i= 0; i< arr.length(); i++) { 
       JSONObeject jo = arr.getJSONObject(i); 
      String strData = jo.getString("name") + jo.getString("age"); 
      adapter.add(strData); 
      } 
     } catch (JSONException e){ 
      Log.d(TAG,"TTT"); 
     } 
     // textView = (TextView) findViewById(R.id.text); 
     // textView.setText(strData); 

    ListView listView = (ListView) findViewById(R.id.listview); 
    listView.setAdapter(adapter); 


    } 
+0

dank zu lösen. danke:) – chohyunwook

1

Sie müssen die Daten zum Listview-Adapter hinzufügen, anstatt das Ergebnis in eine einzige Zeichenfolge zu fassen!

Sie können onPostExcecute ändern wie folgt

@Override 
protected void onPostExecute(String result) { 
    super.onPostExecute(result); 

    try { 
     JSONArray arr = new JSONArray(result); 
     for (int i= 0; i< arr.length(); i++) { 
      JSONObeject jo = arr.getJSONObject(i); 
      adapter.add(jo.getString("name") + jo.getString("age")); 
     } 
    } catch (JSONException e){ 
     Log.d(TAG,"TTT"); 
    } 
    adapter.notifyDataSetChanged(): 
} 
+0

danke, antwortest du mir zu helfen – chohyunwook