2013-10-01 51 views
2

我有一個名爲DatabaseHandler的類,它基本上處理聯繫人數據庫。當我打開我的android模擬器時,我可以添加和刪除聯繫人。然後,當我關閉模擬器並重新打開它時,它將保留聯繫人,因此數據庫將存儲聯繫人。保留變量的Android數據庫處理程序

我的問題是這樣的。我在我的接觸類變量,像這樣:

public static int totalContacts = 0; 

此變量跟蹤在數據庫中的聯繫人的總數,所以當我添加聯繫人它增加,反之亦然。但是,當我關閉模擬器並重新打開它時,數據庫仍然有4個聯繫人,但totalContacts變量顯然保持爲0。

有沒有辦法讓totalContacts等於數據庫中的聯繫人數量,所以它的記得

謝謝你的時間。

回答

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 
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); 
+0

我到底在哪裏放這兩段代碼? – Ogen

+0

檢查我編輯的答案。 –

+0

當我把這一行放在我想要檢索我的變量的類中時[SharedPreferences preferences = getSharedPreferences(「YOUR_IDENTIFIED_KEY_VALUE」,0); int contacts = preferences.getInt(「numContacts」,0);'。在__getSharedPreferences__下面有一條紅線,它表示「方法getSharedPreferences(String,int)未定義類型Contact」 – Ogen