繁体   English   中英

Android的SharedPreferences问题

[英]SharedPreferences Android issue

我正在尝试在我的应用程序中使用SharedPreferences,我需要一点帮助,因为我刚开始使用它。我要做的基本上是:我在主活动中创建SharedPreference对象,然后在第二个活动中有一个列表查看并单击项目,我使用putInt putInt(); 放置整数以发送文本。在新活动中,我有一个按钮,可在adroid系统中添加sharedpreference。 最后,根据发送给第二个活动的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));
            }
        });

任何建议如何解决?

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

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

拥有全局编辑器是一个坏主意,有时它可能会丢失您的数据,因此,每当您要读取/写入sharedPreference时,都要获得一个编辑器。

好吧,首先很难理解这个问题。 在示例代码中,您尝试在主活动和第三个活动中存储值,但似乎从未读取过值。 然后最后您问“任何建议如何解决该问题?” “那个”代表什么? 您收到错误或意外结果吗? 这是我使用的一些示例代码。 我有一个带有某些值的静态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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM