【问题标题】:How to Make a Custom ArrayAdapter for ListView如何为 ListView 制作自定义 ArrayAdapter
【发布时间】:2013-03-01 18:07:22
【问题描述】:

我必须从收到的JSON 响应中自定义ArrayAdapter。这是我得到响应的代码,并将其放入简单的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,最后一个用于描述。

任何帮助将不胜感激。

【问题讨论】:

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


    【解决方案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

    how to set json parsed data in a listview and then adding search functionality in it。看看答案。我已经使用了 hashmap 并在 listview 中显示了相应的数据,并在 listview 项目上进行了搜索。根据您的需要进行修改。

    【讨论】:

    • androidhive 的例子是使用 HashMap,而 hashmap 的问题是它用新值替换旧值,通过这个例子,我只得到列表视图中的最后一个值。你能告诉我如何恢复这个问题吗?
    • 检查编辑的答案,最后一个链接回答了您的问题。
    【解决方案2】:

    Anupam,你可以像这样放置小数据

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-18
      • 2011-01-31
      • 2011-09-23
      • 1970-01-01
      相关资源
      最近更新 更多