我们可以在同一个类中有两个共享首选项实例吗?

时间:2017-10-02 07:01:57

标签: java android sharedpreferences

我的活动类中有两个共享首选项实例。我用来检索已存储在共享首选项中的数据的一个实例。我尝试将新数据集存储到另一个文件中的其他实例,我将从api中检索。我们可以这样做,因为空值存储在共享首选项中。

以下是我的代码的一部分:

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);){
 ..........
SharedPreferences sharedPreferences = getSharedPreferences("User",Context.MODE_PRIVATE);
email = sharedPreferences.getString("email",DEFAULT);

//some piece of code........
setdata();//in this method I'm initializing the variables

SharedPreferences sharedPreferences2 = getSharedPreferences("File", 
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences2.edit();
editor.putString("a",a);
editor.putString("b",b);
editor.putString("c",c);
editor.putString("d",d);
editor.putString("e",e);
editor.commit();
}
public void setData(){
a="hello";
b="world";
c="hello";
d="world";
e="hello";
}

所有这些都在我的活动类的onCreate方法中。 a,b,c,d,e是全局变量,我在该类的其他方法中初始化。我在实现共享首选项之前在onCreate方法中调用方法。但是存储了空值。

1 个答案:

答案 0 :(得分:1)

您已回答了问题...您发布的代码位于活动的onCreate方法中,a,b,c,d,e是全局变量。

  

因此,当活动开始时,它们具有空值。

在初始化a,b,c,d,e的值之后,您需要执行代码以保存值,这是在从API接收数据之后。