我基本上完成了我正在开发的应用程序(我的第一个!),除了实现任何数据保存机制。不久前我研究了这些选项,并认为 SQLiteDatabase 是最好的选择,但是我很难弄清楚如何准确地实现它,所以我把它留到了完成程序的其余部分。从那以后,我每次在我的设备上运行它时都重新输入所有值来测试它。
该应用程序从屏幕上基本上没有任何内容开始。用户添加玩家(通过菜单和对话框)。一旦玩家列表最终确定,用户点击对话框中的“保存”。然后每个玩家的 Table Row 动态膨胀并包含一个 Button、几个 ImageView 和一个 TextView,所有这些都显示每个 Player 的各种属性。这对我的问题并不重要。
所以,我的应用程序基本上只会跟踪 Player 对象。我的数据库对象都是以此为指导构建的:http : //www.androidhive.info/2011/11/android-sqlite-database-tutorial/,大部分情况下将“联系人”替换为“玩家”。
我难以理解的是在哪里实现每个玩家对象的“保存”和“加载”,以及在主 Activity 的 onCreate、onResume 和 onStop 方法中做什么。我已经研究了好几个小时了,我了解到我还应该实现一个 AsyncTask,但这更加复杂,我什至无法将基本数据加载到我的大脑中,更不用说异步执行了.
在我正在阅读的 Deitel 开发人员系列中名为“Android for Programmers: An App-Driven Approach”的书中,有一个关于如何实现 AsyncTask 和 SQLiteDatabase 的很好示例,但在他们的示例中,他们在 ListActivity 中使用了 CursorAdapter,所以我不知道如何使它适用于我的情况。(我的是一个 TabActivity,我上面解释的只是一个“查看玩家”选项卡。)
当用户在“添加玩家对话框”中单击“保存”时,将玩家添加到数据库中对我来说是有意义的,但我不明白在哪里重新加载玩家对象以及在哪里重新填充每个玩家的表格行。
很抱歉,我没有发布更精确的代码,但这更像是一个普遍的问题,我宁愿不发布我的整个应用程序,因为它大约有一千行长。任何帮助将不胜感激,我尽量不要在这里发布每件小事,但这些东西让我很沮丧!