Android Sharedpreferences传递变量值

时间:2016-12-06 09:12:31

标签: java android sharedpreferences android-sharedpreferences

如何将变量的值传递给其他类?我正在使用SharedPreference,我不知道我是否将正确的值传递给其他类。这是我的陈述。

if (arr != null) {
    int sum = 0;
    for(int i = 0;i<arr.length();i++) {
        listdata.add(arr.get(i).toString());
        String money = arr.getJSONObject(i).getString("amount");
        sum += Integer.parseInt(money);
    }

    SharedPreferences sharedPref1 = getActivity().getSharedPreferences(String.valueOf(sum), Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPref1.edit();
    editor.putInt(String.valueOf(sum), sum);
    editor.commit();
}

以下是我在其他课程中获得SharedPreference的方法。这是对的吗?

 SharedPreferences sharedpref1 = getContext().getSharedPreferences(String.valueOf(""), MODE_PRIVATE);
 int budgeted = sharedpref1.getInt(String.valueOf(""), Integer.parseInt(""));

2 个答案:

答案 0 :(得分:2)

SharedPreference基本上是存储在应用程序包存储中的键值对。因此,您可以在应用程序中为SharedPreference选择一个标记。可以说,您的SharedPreference代码为MySharedPreference

因此,如果在SharedPreference中存储值,则需要执行此操作。

SharedPreferences sharedPref1 = getActivity().getSharedPreferences("MySharedPreference", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref1.edit();
editor.putInt("TotalSum", sum);  // Pick a key here. 
editor.commit();

当您从其他某个类中检索偏好值时,只需执行此操作即可。

SharedPreferences sharedpref1 = getContext().getSharedPreferences("MySharedPreference", MODE_PRIVATE);
int budgeted = sharedpref1.getInt("TotalSum", 0); // Use the same key you used before to retrieve the data. 

答案 1 :(得分:0)

您可以使用侦听器将数据从一个类传递到另一个类

CustomListener listener = new CustomListener();
myClass.setOnSumListener(listener);
------
int sum = listener.getSumValue();

或者您可以使用事件总线库 https://github.com/greenrobot/EventBus