作者givemepass (〆)
看板AndroidDev
标题Re: [问题] Shared Preferences
时间Fri May 31 16:51:16 2013
※ 引述《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
1F:推 Xavier:感谢解惑!!! 05/31 17:33
2F:推 LEwww1290:原来如此 02/15 01:57