SharedPreferences Android问题

时间:2011-09-14 22:49:52

标签: android sharedpreferences

我正在尝试在我的应用程序中使用SharedPreferences,我需要一点点因为我刚开始使用它。基本上我想做的事情是:我在主要活动中创建SharedPreference对象,然后在第二个活动中有一个列表视图和点击项我使用putInt();来放置整数来发送文本。在新活动中我有一个按钮,在adroid系统中添加共享偏好。最后,根据发送到第二个活动的ID,我想在活动编号3中显示不同的文本。

这是一个小代码:

主要活动:

SharedPreferences faves = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        SharedPreferences.Editor editor = faves.edit();
        editor.putInt("favorites",0);
        editor.commit();

第二项活动:

SharedPreferences favs= PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        final SharedPreferences.Editor editor = favs.edit();

我希望显示文字的第三个活动取决于点击了哪个项目:

favs.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                editor.putInt("favorites", getIntent().getIntExtra("id", 0));
            }
        });

有任何建议如何解决?

2 个答案:

答案 0 :(得分:0)

您实际上不必创建自己的SharedPreference对象,即api Activity.getSharedPreference(name,mode)就可以了。

基本上它的作用是在你应用程序自己的文件夹下创建一个xml文件,每个put ...()都会在xml中添加一个项目,以便你以后可以更新和阅读,你只需要给出正确的名。

拥有一个全局编辑器是一个坏主意,有时它可能会丢失你的数据,所以每次你想读/写sharedPreference时都要得到一个编辑器。

答案 1 :(得分:0)

好的,首先很难理解这个问题。在示例代码中,您尝试将值存储在主活动和第三个活动中,但似乎没有读取值。然后在最后你问“任何建议如何解决这个问题?” “那个”代表什么?您是否收到错误或您不期望的结果?这是我使用的一些示例代码。我有一个静态的Constants类,我在应用程序的其他部分重用了一些值,但你明白了。

ApplicationContext context = ApplicationContext.getInstance(); //I use a custom app context but any context will do.
SharedPreferences prefs = context.getSharedPreferences(
Constants.PREFS_FILE_NAME, Activity.MODE_PRIVATE);
prefs.getString("favorites", null);//or any other getter you want to use