2

我有一个名为 DatabaseHandler 的类,它基本上处理联系人数据库。当我打开我的安卓模拟器时,我可以添加和删除联系人。然后,当我关闭模拟器并重新打开它时,它会保留联系人,因此数据库会存储联系人。

我的问题是这个。我的联系人类中有一个变量,如下所示:

public static int totalContacts = 0;

此变量跟踪数据库中的联系人总数,因此当我添加联系人时,它会增加,反之亦然。但是,当我关闭模拟器并重新打开它时,数据库仍然有 4 个联系人,但 totalContacts 变量显然保持为 0。

有没有办法使totalContacts数据库中的联系人数量相等,以便记住它?

感谢您的时间。

4

2 回答 2

2

是的。当您知道正确的联系人数量时,您可以将其存储在SharedPreferences.

一切都在 Android 文档中得到了很好的解释:http: //developer.android.com/guide/topics/data/data-storage.html

基本上,当您想保存该值时,您可以这样写:

SharedPreferences settings = getSharedPreferences("NAME_OF_YOUR_CHOICE", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("numContacts", numContacts);

editor.commit(); // Save the changes

当你想加载它时:

SharedPreferences settings = getSharedPreferences("NAME_OF_YOUR_CHOICE", 0);
int numContacts = settings.getInt("numContacts", -1); // if there's no variable in SharedPreferences with name "numContacts", it will have -1 value
于 2013-10-01T05:57:58.643 回答
1

当您想要永久存储数据时,您必须使用 Sharedpreferences。它会将您的数据保存在设备 RAM 中,直到您清除数据或卸载应用程序数据将保留在内存中。使用下面的代码。

//这是你第一次得到你的值的时候,意思是当你得到这个值并想要存储它的时候。

 SharedPreferences preferences = getSharedPreferences("YOUR_IDENTIFIED_KEY_VALUE", 0);
    SharedPreferences.Editor editor = preferences.edit();
    editor.putInt("Contacts", CONTACTS VALUE);

    editor.commit(); // Save the changes

   // And when you want to get stored values, means when you need yo use that value:

    SharedPreferences preferences = getSharedPreferences("YOUR_IDENTIFIED_KEY_VALUE", 0);
    int contacts = preferences.getInt("Contacts", 0);
于 2013-10-01T06:28:56.973 回答