是否必须一次又一次地定义地图?

希曼敏

我打算使用SimpleAdapter将数据从数据库加载到ListView,就像:

private void loadData() {
        // TODO Auto-generated method stub
        Cursor cursor = mHelper.getReadableDatabase().rawQuery(
                "select * from dict", null);
        int wordIndex = cursor.getColumnIndex("word");
        int detailIndex = cursor.getColumnIndex("detail");
        int flagIndex = cursor.getColumnIndex("flag");
        **(1)**//Map<String,String>map = new HashMap<String,String>();
        //map defined here, items are all the last record

        for (cursor.moveToFirst();!cursor.isAfterLast();cursor.moveToNext()){
            **(2)**Map<String,String>map = new HashMap<String,String>();
            if(cursor.getString(wordIndex)==null) break;
//          Log.d(tag,"word: "+cursor.getString(wordIndex));
            map.put("word", cursor.getString(wordIndex));
//          Log.d(tag,"detail: "+cursor.getString(detailIndex));
            map.put("detail", cursor.getString(detailIndex));   
//          Log.d(tag,"flag: "+cursor.getString(flagIndex));
            map.put("flag", cursor.getString(flagIndex));
            listItems.add(map);
        }
        cursor.close();
    }

listItems定义为 ArrayList<Map<String, String>> listItems;

当我将Map定义为1时,其中map在for循环之外,listItems保留最后一个的listItems.length记录,而map定义为2时,listItems将listItems.length记录保留为数据库。有人可以告诉我为什么吗?我会很感激您的回答!

纳宾

第二种方法,即2,是正确的方法

原因是在每次迭代都会创建一个Map<String,String>类型的对象,因此ArrayList,当您使用方式2时,每次迭代都会向您的对象中添加一个新项目

但是以第一种方式,即在每次迭代中都为1时,不会创建新对象,因为它仅在for循环之前完成一次因此,您将无法获得想要的东西。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Mongo JAVA driver-3.6 iterator()一次又一次地迭代单个文档

房间迁移Alter Table不添加新列,迁移一次又一次地被调用

内核一次又一次地死亡

我可以重用UICollectionView吗?不想一次又一次地创建collectionView

OnNavigationItemsSelected侦听器一次又一次地启动相同的活动

如何一次又一次地重复(递归)查询?

无法一次又一次地在LinkedList中插入相同的元素

Flutter:为什么setState((){})一次又一次地设置数据

如何一次又一次地选择读/写?

一次又一次地馈送avconv

如何一次又一次地调用URL

init方法在servlet中一次又一次地调用

我希望我的程序一次又一次地运行而不会停止

同一对象在C#中一次又一次地实例化

避免一次又一次地从JSON获取数据

通知被一次又一次地触发

要重用jQuery函数,使函数一次又一次地使用

在 Fortran 95 中一次又一次地读取文件的内容

Stripe Payment API 一次又一次地发送令牌请求

在 html 中一次又一次地浏览同一个文件

为什么 npm install 命令在 node app 中一次又一次地重新运行?

Azure 容器实例一次又一次地失败

Square 一次又一次地改变速度

为什么数据在 Firebase 数据库的 Loop 中一次又一次地添加?

更新状态一次又一次地获取数据后

碎片一次又一次地消亡 Discordjs

如何一次又一次地重复powershell命令?

Pygame:如何一次又一次地从左到右移动图像

一次又一次地编辑python脚本文件