2013-02-28 157 views
-1

我必須從我得到的JSON響應中自定義ArrayAdapter。這是從那裏我得到響應,並把它在簡單ArrayAdapterandroid.R.layout.simple_list_item_1如何爲ListView創建自定義ArrayAdapter

ListView lv = (ListView) findViewById(R.id.list); 

    try { 

     HttpClient hClient = new DefaultHttpClient(); 
     HttpGet hGet = new HttpGet(
       "API HERE"); 
     ResponseHandler<String> rHandler = new BasicResponseHandler(); 
     data = hClient.execute(hGet, rHandler); 

     JSONObject rootObj = new JSONObject(data); 
     JSONObject searchObj = rootObj.getJSONObject("searchdata"); 
     JSONArray titlesObj = searchObj.getJSONArray("titles"); 
     JSONArray descsObj = searchObj.getJSONArray("desc"); 
     JSONArray linksObj = searchObj.getJSONArray("links"); 

     String[] a = new String[titlesObj.length()]; 

     String[] b = new String[descsObj.length()]; 

     String[] c = new String[linksObj.length()]; 

     for (int i = 0; i < titlesObj.length(); i++) { 
      String title = titlesObj.getString(i); 
      a[i] = title; 
     } 

     for (int i = 0; i < descsObj.length(); i++) { 
      String desc = descsObj.getString(i); 
      b[i] = desc; 
     } 

     for (int i = 0; i < linksObj.length(); i++) { 
      String link = linksObj.getString(i); 
      c[i] = link; 
     } 

     ArrayList<String> al = new ArrayList<String>(); 
     for (int i = 0; i < linksObj.length(); i++) 

     { 
      al.add(" " + a[i] + " " + b[i] + "" + c[i] + ""); 
     } 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(
       MainActivity.this, android.R.layout.simple_list_item_1, al); 

     lv.setAdapter(adapter); 

    } catch (Exception e) { 

    } 

這裏我的代碼,我的觀點的截圖:

OUTPUT of my CODE

我想說明的觀點其中有三個爲TextView,標題爲另一個,最後一個爲描述。

任何幫助將不勝感激。

+0

爲什麼投票下來? – Anupam 2013-02-28 15:35:13

回答

1

製作自定義適配器。將該適配器設置爲您的列表視圖。你的Adapter類應該擴展ArrayAdapter。在getView()中用3個textviews充氣你的自定義xml。使用視圖來表現。

她的一個例子http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/。她的更多一點listview http://www.youtube.com/watch?v=wDBM6wVEO70

how to set json parsed data in a listview and then adding search functionality in it。看看答案。我已經在列表視圖中使用hashmap和顯示的數據,因此在列表視圖項上進行搜索。根據您的需要修改相同的內容。

+0

androidhive的例子是使用HashMap,hashmap的問題是它用新的值替換舊的值,通過這個例子,我只得到listview中的最後一個值。你能告訴我怎樣才能解決這個問題。 – Anupam 2013-02-28 15:32:15

+0

檢查編輯的答案,最後一個鏈接回答你的問題。 – Raghunandan 2013-02-28 17:05:25

0

阿努邦,您可以將小數據,如

al.add(" " + apple + " " + ball + "" +cat + ""); 

在單行單列。如果你想在單行中保留那麼多的數據(上面提到的圖像在單行中)是不可能的。

相關問題