Android数据库创建

时间:2013-03-22 21:34:51

标签: android database

在我的应用程序中,当用户第一次进入时,他可以添加两个日期,然后应用程序进行一天的计算。然后,此结果将写入数据库,并在主Activity中的textView中打印(称为arxiki.class)我想让应用程序记住这个结果,并在每次用户进入主要活动时打印出来。

正如我所说,每次用户更改活动或关闭应用程序时,下次应用再次请求他输入日期并在我的数据库中创建新数据。我怎样才能得到第一个结果?感谢

我保存日期结果的代码是:

DbXronia entry_add = new DbXronia(arxiki.this);
            entry_add.open();
            entry_add.createEntry_xronia(meres);
            entry_add.close();

2 个答案:

答案 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();