Re: [問題] Shared Preferences

看板AndroidDev作者 (〆)時間12年前 (2013/05/31 16:51), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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

05/31 17:33, , 1F
感謝解惑!!!
05/31 17:33, 1F

02/15 01:57, , 2F
原來如此
02/15 01:57, 2F
文章代碼(AID): #1Hg6IAy1 (AndroidDev)
討論串 (同標題文章)
文章代碼(AID): #1Hg6IAy1 (AndroidDev)