Android EditTexts AutoSave

时间:2013-09-03 23:56:58

标签: android

我有一个包含很多String字段的数据库对象。现在,这些字符串字段由用户通过具有大量编辑文本的活动进行管理。但是,我无法将EditTexts中的所有信息保存到数据库中。当活动调用onPause但我没有按照我想要的方式工作时,我尝试过这样做(我正在使用带有EditTexts的ListView,因此很难说视图是否存在)。我一直在关注text watcher,但为每个EditText添加一个,其中一些是动态创建的,这似乎非常繁琐。

我考虑过扩展EditText并实现一些东西来使用TextWatcher,但我又不确定最好的方法。

有人对我如何做到这一点有任何建议吗?谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

我想说你应该对ArrayList中的每个EditText对象进行引用,然后使用数组列表适配器将数据提供给listview。

当任何EditText被更改时,您可以在适配器上调用notifyDatasetChanged。 在onPause方法中,您可以循环访问ArrayList并将每个文件保存到数据库中。

答案 1 :(得分:0)

想到了一些想法:

<强> 1

在列表视图的顶部/底部或操作栏中实施保存按钮。

保存按钮onclicklistener将获取列表视图中的每个文本并更新数据库中的相关字段。

将saveButton工作放在UI线程中,这样它就会阻塞直到完成,并且活动不会被销毁。您还可以创建一个进度对话框,让用户知道它正在更新。

<强> 2

为listview和适配器的getView()方法实现自定义适配器(无论如何都必须覆盖它)动态添加文本观察器......这样,单独添加它们并不是那么艰难< / p>