3

我有一个包含很多字符串字段的数据库对象。现在,这些字符串字段由用户通过一个包含大量编辑文本的活动来管理。但是,我无法将 EditTexts 中的所有信息保存到数据库中。我已经尝试在活动调用 onPause 时执行此操作,但它无法按我的意愿工作(我正在使用带有 EditTexts 的 ListView,因此很难说视图是否会存在)。我一直在查看文本观察器,但为每个 EditText 添加一个似乎真的很乏味,其中一些是动态创建的。

我已经考虑过扩展 EditText 并实现一些东西来使用 TextWatcher,但我再次不确定解决这个问题的最佳方法。

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

4

2 回答 2

1

我想说您应该在 ArrayList 中保存对每个 EditText 对象的引用,然后使用数组列表适配器将数据提供给您的列表视图。

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

于 2013-09-04T02:59:29.377 回答
0

几个想法浮现在脑海:

1.

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

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

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

2.

为您的列表视图实现一个自定义适配器并在适配器的 getView() 方法中(无论如何您都必须覆盖它)动态添加一个文本观察器......这样您单独添加它们并不是那么困难

于 2013-09-04T00:49:22.487 回答