2013-05-06 101 views
0

我是一個新的android,我試圖在我的應用程序中創建一個動態列表視圖。 我通過從數組創建列表獲得成功。現在我需要從JSON對象創建一個列表。我的代碼看起來像在android-json中創建一個動態列表

package com.apli.listtest; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.TextView; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     final String [] str = {"ONE","TWO","THREE","Four"}; 
     final ListView lv = (ListView) findViewById(R.id.listView1); 
     final TextView tv = (TextView)findViewById(R.id.tv1); 
     lv.setAdapter(new ArrayAdapter<Object>(getApplicationContext(), android.R.layout.simple_list_item_1, str)); 



    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 

} 

XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

<TextView 
     android:id="@+id/tv1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textColor="#333" 
     android:text="" /> 

    <ListView 
     android:id="@+id/listView1" 
     android:layout_width="match_parent" 
     android:textColor="#333" 
     android:layout_height="wrap_content" > 
    </ListView> 

</LinearLayout> 

我的JSON看起來像

[{"name":"Name 1","number":"num 1"},{"name":"Name 1","number":"num 1"},{"name":"Name 1","number":"num 1"},{"name":"Name 1","number":"num 1"},{"name":"Name 1","number":"num 1"},{"name":"Name 1","number":"num 1"}] 

現在我想創建比數組

其他上述JSON列表視圖請幫忙 在此先感謝

+1

和你的問題是? – njzk2 2013-05-06 15:41:56

+1

問題或問題是什麼? – 2013-05-06 15:42:01

+0

對不起,我想從json – ramesh 2013-05-06 15:43:29

回答

3

聲明這是來自內存,應該工作。

try { 
    JSONArray array = new JSONArray(src); // your string 
    String[] listValues = new String[array.length()]; 
    for (int i = 0; i < array.length(); i++) { 
     listValues[i] = array.getJSONObject(i).getString("name"); 
    } 
    lv.setAdapter(new ArrayAdapter<Object>(getApplicationContext(), android.R.layout.simple_list_item_1, listValues)); 
} catch (JSONException e) { 
    e.printStackTrace(); 
}