2013-04-24 70 views
26

我想在最後一小時在我的Android應用程序中保存一個整數。我讀過這可以使用SharedPreferences完成。但我不明白爲什麼它似乎這麼做令人困惑。Android SharedPreferences,如何保存一個簡單的int變量

我該如何保存一個int變量?然後,當我再次運行應用程序時,如何再次與此變量進行交互?

+0

A **簡單方法**會使用此庫:http://github.com/viralypatel/Android -SharedPreferences-Helper ...擴展技術細節在我的[answer here](http://stackoverflow.com/a/35232248/1957401)... – AndroidMechanic 2016-02-06 12:29:27

+0

看看http://www.gadgetsaint.com/go/ xb023 – ASP 2017-03-19 20:57:34

回答

50
SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE); 
SharedPreferences.Editor editor = sp.edit(); 
editor.putInt("your_int_key", yourIntValue); 
editor.commit(); 

的,你可以得到它:

SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE); 
int myIntValue = sp.getInt("your_int_key", -1); 

SharedPreference接口,您可以訪問到一個XML文件,一個簡單的方法,通過它的編輯器來修改它。該文件存儲在/data/data/com.your.package/shared_prefs/,您可以通過此SharedPreference訪問它onlull API

+2

嗯,你可以把一些意見,以瞭解那裏發生了什麼,因爲我不明白這個例子?哪個變量?什麼是「your_prefs」。它旁邊的0是什麼。什麼是「your_int_key」 – donparalias 2013-04-24 14:27:57

+1

實際上,您還需要爲'getInt'提供一個默認值,當'int'鍵'your_int_key'找不到時返回'getInt'。像這樣:'int myIntValue = sp.getInt(「your_int_key」,-1);'其中-1是默認值。 – zbr 2013-04-24 14:29:33

+2

我想在第一個例子中'clearNotificationsSP'應該只是'sp',對吧? – Scorchio 2014-02-12 20:51:34

6

這是設置布爾首選項的示例。你也可以用Integer去。

SharedPreferences prefs = PreferenceManager 
        .getDefaultSharedPreferences(this); 
      if (!prefs.getBoolean("firstTime", false)) { 

       SharedPreferences.Editor editor = prefs.edit(); 
       editor.putBoolean("firstTime", true); 
       editor.commit(); 
      } 

希望這可能會有所幫助。

10
public void SaveInt(String key, int value){ 
     sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     SharedPreferences.Editor editor = sharedPreferences.edit(); 
     editor.putInt(key, value); 
     editor.commit(); 
} 
public void LoadInt(){ 
     sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     savedValue = sharedPreferences.getInt("key", 0); 
} 

如果你想保存變量的某個地方,你必須編寫SaveInt(「key」,5);有了這個,你將保存值5,而第一個默認值是0.如果你想加載它並在另一個活動中使用它,你必須在這裏寫這兩個方法,然後調用LoadInt();你需要變量的地方。該savedValue的是一個預定義的整數(這需要到處宣稱你想使用這些保存的變量)

+0

https://gist.github.com/john1jan/b8cb536ca51a0b2aa1da4e81566869c4 – John 2016-08-18 13:11:53