所以,我在Java中有一些非常次要的经验,我正在尝试学习/工作一个android项目。我遇到的问题是围绕保存/检索用户数据。
它是一个简单的标记应用程序(主要用于我自己),但基本上有一个学期对象,其中包含类对象,其中包含可标记的对象(即每个对象都有自己的权重)。
基本上我要问的是我将如何检索数据..我真正想要的是显示“哦,嘿,这是你当前学期的标记:”当你打开主要活动/开始时应用程序(这将涉及加载用户已输入数据的学期对象并调用方法),但我不知道每次打开和关闭应用程序时如何打开/保存对象。
我会在学期课程中实现序列化,还是在关闭/打开应用程序时保存/打开对象。即使是正确的方法,保存学期对象?
我一直在寻找一段时间,我看到有关人们打开文件的问题,我现在很丢失。
(哦,虽然我是关于这个项目的主题,但是嵌套对象的想法是一种糟糕的方法吗?就像有一个包含多个类对象的学期对象,每个对象包含多个可标记对象)
答案 0 :(得分:0)
它是一个简单的标记应用程序(主要用于我自己),但基本上有一个学期对象,其中包含类对象,其中包含可标记的对象(即每个对象都有自己的权重)。
这些对象可以很好地存储在SQLite数据库的单独表中。
但我不知道每次打开和关闭应用程序时如何打开/保存对象。
您可以扩展Application
类,并在其onCreate()中放置您只想在最初启动应用时运行一次的任何代码。
在主Activity的onCreate()中,您还可以在每次用户导航到该活动时放置代码以显示数据。
我会在学期课程中实现序列化,还是在关闭/打开应用程序时保存/打开对象。即使是正确的方法,保存学期对象?
听起来您的对象可以通过将它们存储在关系结构中而受益,因此您可以考虑将它们存储在SQLite数据库中。
(哦,虽然我关于这个项目的主题,但是将对象嵌套为一种坏方法的想法是什么?就像有一个包含多个类对象的学期对象,每个对象包含多个可标记对象)
如果有意义则不行。例如,您可以拥有一个Semester对象,该对象包含Class对象的ArrayList作为成员。
答案 1 :(得分:0)
答案 2 :(得分:0)
使用SQLite数据库存储所有主题信息,即主题对象。
实现所有数据库CRUD操作将解决您的大多数问题。
请参阅here
将主题添加到数据库中的示例
public void addSubject(Subject sub) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, sub.getSubjectName()); // Subject Name
values.put(KEY_MARK, sub.getMark()); // Subject Mark
values.put(KEY_SEMSTER, sub.getSemster()); // Semester subject is marked
// Inserting Row
db.insert(TABLE_SUBJECT, null, values);
db.close(); // Closing database connection
}
通过使用数据库中的学期键,您可以轻松地在一个学期中检索所有科目。因此,您只需要管理一种类型的对象。
对于刚开始使用Java的人来说,这可能有点令人生畏,但是有很多例子可以让你开始使用,你可以随时在这里找到帮助。别担心,探索。