我正在写一个简单的照片库应用程序。我希望人们滚动图像,并能够将它们添加到“收藏夹”列表中。
我构建了一个全局的Favorite
类(将该类放在一个将其定义为静态的cGlobal类中。)
现在我有了这个工作,我希望能够保存最喜欢的状态 - 这个想法如下:
似乎当我从主要活动加载首选项时,它会显示为null。但我可以在画廊活动中阅读我写给它的内容。我有以下测试代码:
在主Activity中,应用程序启动时:
/////////////////////////////////////////////// ///////////////////////////////////
public class MainActivity extends cBaseView implements OnClickListener {
/** Called when the activity is first created. */
String tr;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// load in favrets from prefences
SharedPreferences pre=getPreferences(MODE_PRIVATE);
// This does not work and tr is equal to no value.
tr=pre.getString("label","no value");
// add listeners
/////////////////////////////////////////////// ////////////////////////////////
图库活动
public void onCreate(Bundle savedInstanceState) {
// test code
SharedPreferences pre=getPreferences(MODE_PRIVATE);
pre.edit().putString("label","ted").commit();
// tr is set to ted, got the data
tr=pre.getString("label","no value");
}
答案 0 :(得分:2)
当您使用getPreferences
时,根据to the javadoc of activity:
检索SharedPreferences对象以访问其中的首选项 私人参加此活动。这只是调用底层证券 通过传入此活动的getSharedPreferences(String,int)方法 类名作为首选项名称。
您应getSharedPreferences
使用相同的名称,以获得不同活动共享的偏好。