看板 AndroidDev 關於我們 聯絡資訊
※ 引述《Xavier (X.avi(er))》之銘言: : 版友好! : 最近有使用到Shared Preferences(以下SP代稱), : 不過搞不懂它跟Activity的關係, : 請大家幫忙解惑 @@" : mode 都是 MODE_PRIVATE。 : 1. : 每個Activity都有一個自己的SP嗎? : 還是程式中所有的Activity共用某區塊? 共用的 其實就是一個資料夾 當你建立一個SP的時候 他會存成XML的檔案格式 存在/data/data/<package name>/shares_prefs這個資料夾之下 假設你在MainActivity.java這個activity使用這樣的程式碼 SharedPreferences settings = getPreferences(0); 那麼你就會發現shares_prefs就會多出一個MainActivity.xml 接著你又用 SharedPreferences.Editor editor = settings.edit(); editor.putString("myword", "givemepass"); editor.commit(); 那麼你打開這個xml就會發現長這樣 <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <string name="myword">givemepass</string> </map> 他是利用一個key對應一個value的 你可以根據MODE的設定 來決定是否要讓其它應用程式來存取這個xml : 2. : ... : SharedPreferences Settings1; : SharedPreferences Settings2; : ... : 這兩個變數存取的SP是同一個嗎? 可以是存取同一個XML也可以不是 看你怎麼寫 Settings1 = getSharedPreferences("aaa",0); Settings2 = getSharedPreferences("bbb",0); 如上面鎖解釋的 你會看到shares_prefs多出兩個xml 分別是aaa.xml跟bbb.xml : 3. : 我有兩個 .JAVA檔 控制兩個Activity, : 都是寫 : SharedPreferences floorSettings; //全域變數 : ... : floorSettings = getPreferences(MODE_PRIVATE); : String floorStr = floorSettings.getString("floorString", null); : ... : 而floorStr取得的字串卻是不一樣的,是因為 mode 嗎? : === : 謝謝大家花時間看完! 上面解釋過了XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.33.139
Xavier:感謝解惑!!! 05/31 17:33
LEwww1290:原來如此 02/15 01:57