java - 从 ArrayList<HashMap<String, String>> 获取无效值

标签 java android listview android-listview

我在 ListView 中获得无效值。我的代码如下。

 final ArrayList<HashMap<String, String>> placesListItems = new ArrayList<HashMap<String, String>>();

        runOnUiThread(new Runnable() {
            public void run() {
                try {
                    HashMap<String, String> map = new HashMap<String, String>();

                    for (int i = 0; i < dealList.size(); i++) {
                        map.put(DealItem.DEAL_ID, dealList.get(i).deal_id);
                        map.put(DealItem.DEAL_NAME, dealList.get(i).deal_name);
                        System.out.println("DEAL NAME = "+dealList.get(i).deal_name);
                        placesListItems.add(map);

                    }

                    new PlacesMapActivity(SinglePlaceActivity.this, lon, lat, name, add);

                    ListView lv = (ListView) findViewById(R.id.listView);
                    simpleAdapter = new SimpleAdapter(SinglePlaceActivity.this, placesListItems, R.layout.list_item_deal, new String[] {
                            DealItem.DEAL_ID, DealItem.DEAL_NAME }, new int[] { R.id.reference, R.id.name });
                    lv.setAdapter(simpleAdapter);

当我运行这段代码时,我得到这样的答案

  10-03 18:37:29.429: I/System.out(3957): DEAL NAME = Sinbad Cafe
  10-03 18:37:52.369: I/System.out(3957): DEAL NAME = Coffee,Tea, Hot Milk
  10-03 18:37:55.189: I/System.out(3957): DEAL NAME = Httpss

但我不明白为什么我在 ListView 中得到无效值

如下:

  Httpss
  Httpss
  Httpss

最佳答案

同一张 map 会多次添加到列表中。

尝试将新的 HashMap<...> 行移动到 for 循环中:

                for (int i = 0; i < dealList.size(); i++) {
         -->        HashMap<String, String> map = new HashMap<String, String>();
                    map.put(DealItem.DEAL_ID, dealList.get(i).deal_id);
                    map.put(DealItem.DEAL_NAME, dealList.get(i).deal_name);
                    System.out.println("DEAL NAME = "+dealList.get(i).deal_name);
                    placesListItems.add(map);

                }

关于java - 从 ArrayList<HashMap<String, String>> 获取无效值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12709655/

相关文章:

android - ListView 同一行中的两个可点击项目

java - 如何使用 XML 或 JSON 数据填充 ListView(在 Android 中)?

java - 使用 Solr 和 Mahout 的推荐系统

android - styles.xml 中的自定义属性

java - 无法将带有类型参数的 Java 类重写为 Kotlin

android - 折叠布局行为在垂直 View 寻呼机内无法正常工作

android - 避免多次点击

java - Android - ListView 的问题

java - 在 Java/处理中过滤数据

java - 是否可以在泛型函数中测试类型?