【问题标题】:show a specific item from a hashmap in a listview在列表视图中显示哈希图中的特定项目
【发布时间】:2015-12-15 13:55:16
【问题描述】:

有没有办法使用 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 吗?

【问题讨论】:

    标签: java android arraylist hashmap adapter


    【解决方案1】:

    如果你需要字符串。

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

    如果你需要对象。

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

    希望它有效。谢谢

    【讨论】:

      【解决方案2】:

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

      您还可以根据自己的目的创建扩展列表并将 HashMap 传递给它

      【讨论】:

        【解决方案3】:

        您可以使用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 中设置的值的键

        【讨论】:

        • setOnItemClickListenerListView 的一个方法。在回调中,您将获得 position 的条目,这意味着您将获得 HashMap 实例,该实例包含在特定位置的列表中。是的,它会工作
        【解决方案4】:

        有两种方法:

        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);
          

        【讨论】:

          猜你喜欢
          • 2015-11-02
          • 1970-01-01
          • 2013-12-06
          • 2013-01-05
          • 1970-01-01
          • 1970-01-01
          • 2016-01-03
          • 2015-05-24
          • 1970-01-01
          相关资源
          最近更新 更多