在我的应用程序中,当用户第一次进入时,他可以添加两个日期,然后应用程序进行一天的计算。然后,此结果将写入数据库,并在主Activity中的textView中打印(称为arxiki.class)我想让应用程序记住这个结果,并在每次用户进入主要活动时打印出来。
正如我所说,每次用户更改活动或关闭应用程序时,下次应用再次请求他输入日期并在我的数据库中创建新数据。我怎样才能得到第一个结果?感谢
我保存日期结果的代码是:
DbXronia entry_add = new DbXronia(arxiki.this);
entry_add.open();
entry_add.createEntry_xronia(meres);
entry_add.close();
答案 0 :(得分:1)
正如我所说,每次用户更改活动或关闭时 应用程序,下次应用程序再次请求他输入日期并创建 我的数据库中有一个新数据。我怎样才能得到第一个结果?谢谢
因此,您只想向用户询问一次日期(仅限应用程序第一次出现)。这个“算法”不应该是棘手的。当用户输入日期并将值写入保存状态“存储日期”的数据库时,您需要一些机制。
您可以用来达到目标SharedPreferences
。将值写入数据库后,将“此操作”保存到SharedPreferences中,然后在下次用户启动应用程序时,只需创建将包装操作的条件。
<强>伪代码:强>
// saving action
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.edit().putBoolean("isInserted", true);
// retrieve value
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean isInserted = prefs.getBoolean("isInserted", false);
if (!isInserted) {
// user can add dates
}
else {
// do your stuff
}
答案 1 :(得分:0)
你在后端使用什么类型的数据库 - SQLite?
如果您使用的是SQLite,您可以通过自动增量 * _ id * coloumn来命令从数据库中获取的数据。作为替代方案,您可以在插入新条目时存储到数据库中的某种时间戳。 查询看起来像:
Cursor c = db.query (true, table, new String[]{dataColumn}, null, null, null, null, "_id DESC", "LIMIT 1")
if (c.moveToFirst()) {
String result = c.getString(0);
}
c.close();