在列表视图中显示哈希图中的特定项目

show a specific item from a hashmap in a listview

有没有办法使用 ArrayAdapter 仅显示 ArrayList 中的特定元素

   final ListView lst = (ListView)  findViewById(R.id.listView);

        ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();

            for(int j=0;j<result.length();j++) {
                try {


                    HashMap<String,String> map = new HashMap<String,String>();
                    map.put("title", result.getJSONObject(j).getString("title"));
                    map.put("url", result.getJSONObject(j).getString("url"));


                    list.add(map);



                } catch (Exception e) {
                    e.printStackTrace();
                }
            }

        ArrayAdapter ad= new ArrayAdapter(List.this, android.R.layout.simple_list_item_1,list);

        lst.setAdapter(ad);

换句话说:我只想在 ListView 中显示标题元素。

我需要创建 CustomAdapter 吗?

有两种方法可以做到:

  1. 通过创建自定义适配器
  2. 通过创建另一个仅包含您要显示的值的数组列表。如下所示:

    ArrayList<String> listTitle = new ArrayList<String>();
    for(int j=0;j<result.length();j++) {
            try {
    
    
                HashMap<String,String> map = new HashMap<String,String>();
                map.put("title", result.getJSONObject(j).getString("title"));
                map.put("url", result.getJSONObject(j).getString("url"));
                listTitle.add(result.getJSONObject(j).getString("title"));
    
                list.add(map);
    
    
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    ArrayAdapter ad= new ArrayAdapter(List.this, android.R.layout.simple_list_item_1,listTitle);
    

你可以使用 SimpleAdapter。例如

SimpleAdapter ad= new SimpleAdapter(List.this, list, android.R.layout.simple_list_item_1, new String[] {"title"}, new int[] {android.R.id.textview1});

String[] 包含您要用来检索要在 ui

中设置的值的键

是的,在这种情况下您必须创建一个自定义适配器,或者您可以简单地创建一个附加列表并将其用于 ArrayAdapter。

您还可以为您的目的创建扩展列表并将 HashMap 传递给它

如果你需要字符串。

String title=(String)map.get("title");

如果你需要对象。

Object title=map.get("title");

希望它有效。谢谢