AlertDialog之对话框的数据更新

今天在做一个测试的时候,碰到一个问题,就是AlertDialog对话框里面的listView数据更新问题:

ListView是用SimpleCursorAdapter填充的,数据直接来自Cursor如图:

AlertDialog之对话框的数据更新_第1张图片

(呵呵,上面的透明效果,真的不明白怎么来的,自己写的代码也没有弄明白,我只是在showDialog(),之后 产生对话框是在onPrepareDialog方法中产生的,就有了透明效果,真真原因就不知道了!)

回到话题 :


如上图:当我们想点击某一行删除数据的时候,出现是否删除,如果删除,返回这个列表,想法很简单,但是实现起来就是如何在返回的时候,实现数据更新,这个问题纠结很久,想监听Adapter但是效果不明现。

无奈之下,想一个感觉不是很明智的办法,就是再次调用showDialog()方法 ,重新生成对话框,这样真的可以了……但是不明白之前showDialog那个对话框还在不在,我没有dismess掉;忘高手明路……


还有一个问题:当我们点击了查询之后,那么这个对话框就感觉已经固定了,如果你在不退出应用程序下,再添加数据之后,即使你的数据库已经更新,再次点击查询都不会有任何更新

调试之后发现,如果点击查询之后,只要不退出应用程序,那么这个dialog似乎已经固定了一样,不会再有任何更新,原因很简单,就是因为在这里onCreateDialog在创建一个对话框的时候只会执行一次,不退出应用程序,永远并不会再次Create对话框,只会多次执行onPrepareDialog方法 ,所以应该把数据更新放在onPrepareDialog方法里面,这样在添加了数据之后,再次显示查询对话框的话就会调用onPrepareDialog方法 ,保证数据的更新 了。


你可能感兴趣的:(数据库,ListView,测试,dialog)