如何在另一个活动中检索共享首选项?

时间:2021-01-18 18:24:28

标签: android

我想在一个活动中检索共享首选项中保存的值,以便在另一个活动中使用这些值。我知道共享首选项中保存的值在应用程序的所有活动中都可用。有谁知道我该怎么办?在此先感谢大家! 这是在我的 MenuActivity 中保存共享首选项的代码:

private final String DefaultEmailValue = "";
private String email;
private final String DefaultUsernameValue = "";
private String userName;
private static final String PREFS_NAME = "preferences";
private static final String PREF_EMAIL = "Email";
private static final String PREF_USERNAME = "Username";


    private void savePreferences() {
        SharedPreferences settings = getSharedPreferences(PREFS_NAME,
                Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = settings.edit();

        // Edit and commit
        email = mEmail.getText().toString();
        userName = mUsername.getText().toString();
        System.out.println("onPause save email: " + email);
        System.out.println("onPause save username: " + userName);
        editor.putString(PREF_EMAIL, email);
        editor.putString(PREF_USERNAME, userName);
        editor.commit();
    }

    private void loadPreferences() {

        SharedPreferences settings = getSharedPreferences(PREFS_NAME,
                Context.MODE_PRIVATE);

        // Get value
        email = settings.getString(PREF_EMAIL, DefaultEmailValue);
        userName = settings.getString(PREF_USERNAME, DefaultUsernameValue);
        mEmail.setText(email);
        mUsername.setText(userName);
        System.out.println("onResume load email: " + email);
        System.out.println("onResume load username: " + userName);
    }

2 个答案:

答案 0 :(得分:2)

你已经知道方法了。 您在一项活动中从“偏好设置”中获得了字段。

您可以使用与以前相同的方法在另一个活动中获取字段值。

SharedPreferences prefs = this.getSharedPreferences("preferences", Context.MODE_PRIVATE);
String email = prefs .getString("Email", "");

答案 1 :(得分:0)

您可以按名称将值保存到 SharedPreferences。只需在其他活动上按名称检索所需的值。 SharedPreferences 是应用程序的存储,而不仅仅是 Activity。您可以从可以实例化 SharedPreference 实例的任何位置检索数据。