插入数据无法及时更新ListView页面

插入数据无法及时更新ListView页面

更新数据可以及时更新ListView页面,插入数据不能及时更新,数据是插入到数据库了,遍历数据库能看到。更奇怪的是:插入数据后再去更新别的笔记信息,也不能及时更新页面了,没插入数据前update操作是可以及时更新ListViewd页面数据的  ,数据库同样是被修改成功了的

   笔记标题和内容均不为空,则插入到数据库
                       if (!title.isEmpty() & !content.isEmpty()) {
                           if (note != null)//却isfromDatabase=true
//                         数据来源于数据库,需要更新笔记note
                           {
                               try {
                                   note.setTitle(title);//修改源数据
                                   note.setContent(content);//修改源数据
                                   databaseManagement.noteUpdate(note);
                                   //更新mAdapter适配器数据,运行及时更新页面
                                   fragmentAllNote.myAdapter.notifyDataSetChanged();
                                   isfromDataBase = false;//重新初始化为false;
                               } catch (SQLException e) {
                                   e.printStackTrace();
                               }
                           } else//新建笔记note
                           {
                               try {
                                   note = new Note(title, content);
                                   databaseManagement.noteInsert(note);
                                   //更新mAdapter适配器数据
//                 语句(1)                   fragmentAllNote.noteList = databaseManagement.noteQueryAll();
                                   Log.i("test", "插入新笔记后遍历所有笔记:");
                                   for (int i = 0; i < fragmentAllNote.noteList.size(); i++) {
                                   Log.i("test", "第" + i + "条信息" + fragmentAllNote.noteList.get(i).toString());
                                   }
//                              无法更新页面,无论有没有注释掉上一句(语句(1))
                                   fragmentAllNote.myAdapter.notifyDataSetChanged();
                               } catch (SQLException e) {
                                   e.printStackTrace();
                               }
                           }
                           clean();
                       }

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕雪 2019-05-14 10:08:18

嗯嗯,棒棒哒。加油

提问者 慕运维0750787 2019-05-14 09:43:00

本人已解决,麻烦老师了

提问者 慕运维0750787 2019-05-14 09:42:26

找到原因了,新代码如下:

笔记标题和内容均不为空,则插入到数据库
                       if (!title.isEmpty() & !content.isEmpty()) {
                           if (note != null)//却isfromDatabase=true
//                         数据来源于数据库,需要更新笔记note
                           {
                               try {
                                   note.setTitle(title);//修改源数据
                                   note.setContent(content);//修改源数据
                                   databaseManagement.noteUpdate(note);
                                   //更新mAdapter适配器数据,运行及时更新页面
                                   fragmentAllNote.myAdapter.notifyDataSetChanged();
                                   isfromDataBase = false;//重新初始化为false;
                               } catch (SQLException e) {
                                   e.printStackTrace();
                               }
                           } else//新建笔记note
                           {
                               try {
                                   note = new Note(title, content);
                                   databaseManagement.noteInsert(note);
                                   //更新mAdapter适配器数据
                                   List<Note> listNote = databaseManagement.noteQueryAll();
                                fragmentAllNote.noteList.clear();//清除原来数据,保持指针指向不变
                                fragmentAllNote.noteList.addAll(listNote);//添加数据库数据
                                   Log.i("test", "插入新笔记后遍历所有笔记:");
                                   for (int i = 0; i < fragmentAllNote.noteList.size(); i++) {
                                   Log.i("test", "第" + i + "条信息" + fragmentAllNote.noteList.get(i).toString());
                                   }
//                              无法更新页面,无论有没有注释掉上一句(语句(1))
                                   fragmentAllNote.myAdapter.notifyDataSetChanged();
                               } catch (SQLException e) {
                                   e.printStackTrace();
                               }
                           }
                           clean();
                       }

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android网络操作与数据存储2018版
  • 参与学习           人
  • 提交作业       307    份
  • 解答问题       1613    个

本专题是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理。介绍了Android内外部文件存储、轻量级数据库SQLite的使用。利用屏幕适配、状态保持、百度地图解决实际问题。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师