如何为ListView创建自定义ArrayAdapter

时间:2013-02-28 14:57:34

标签: android android-listview android-arrayadapter android-ui

我必须从我收到的ArrayAdapter回复中制作自定义JSON。以下是我收到回复的代码,并将其放入简单ArrayAdapter android.R.layout.simple_list_item_1

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一个用于标题,另一个用于URL,最后一个用于描述。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分: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并在listview中显示数据,并在listview项目上进行搜索。根据您的需要修改它。

答案 1 :(得分:0)

Anupam,你可以放置像

这样的小数据
   al.add(" " + apple + " " + ball + "" +cat + "");

单行单行。如果你想在单行中保留那么多数据(上面一行中提到的数据)是不可能的。