-1

我必须根据ArrayAdapter收到的JSON回复进行定制。这是我的代码,我从中得到响应并将其简化ArrayAdapterandroid.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) {

    }

这是我的观点的截图:

我的代码的输出

我想显示一个视图,其中三个TextView标题为标题,另一个为 URL,最后一个为描述。

任何帮助将不胜感激。

4

2 回答 2

1

制作自定义适配器。将该适配器设置为您的列表视图。您的适配器类应该扩展 ArrayAdapter。在 getView() 中,使用 3 个 textviews 为您的自定义 xml 充气。使用查看器来提高性能。

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

如何在列表视图中设置 json 解析数据,然后在其中添加搜索功能。看看答案。我已经使用了 hashmap 并在 listview 中显示了相应的数据,并在 listview 项目上进行了搜索。根据您的需要进行相同的修改。

于 2013-02-28T15:08:19.583 回答
0

Anupam,您可以放置​​小数据,例如

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

单行单行。如果您想在单行中保留这么多数据(上述图像中的单行)是不可能的。

于 2013-03-01T10:07:22.013 回答