【问题标题】:Store data and display it in another activity using sharedpreferences (Newer Version)使用 sharedpreferences 存储数据并将其显示在另一个活动中(较新版本)
【发布时间】:2017-02-28 15:26:02
【问题描述】:

*我是学习android的新手

我正在搜索显示如何接受用户详细信息(例如姓名和年龄)并在新版本代码中使用 sharedpreferences 将其显示在另一个活动中的任何网站?你有什么?另一个活动将有一个返回按钮指向第一个活动。我发现的只是旧版本,在我的 Android Studio 中不匹配,所以我取消了该程序。有人吗?

【问题讨论】:

  • 您能分享您尝试过的代码以及您看到的导致它“不匹配”的错误消息吗?
  • 你知道android有官方doc吗,查看SharedPref页面here我很确定它已经更新了!

标签: android sharedpreferences


【解决方案1】:

在第一个活动中,您可以像这样保存用户名和年龄:

private void saveUserInformation(String userName, int age) {
        //In this activity save the name in the shared preference
        SharedPreferences sharedPreferences = getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE);
        sharedPreferences.edit().putString("user_name", userName).putInt("user_age", age).apply();
    }

在第二个活动中,要获取用户信息,请执行以下操作:

private void getUserInformation() {
        //In the second activity or any other activity, you can get the userName and age like thi
        SharedPreferences sharedPreferences = getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE);
        String userName = sharedPreferences.getString("user_name", null);
        int userAge = sharedPreferences.getInt("user_age", 0);
    }

根据您在其他答案中的问题和评论,我想您需要更多关于共享偏好如何工作的解释。当您将数据保存在共享首选项中时,它会保存在用户设备上的文件中。保存后,只要活动有权访问,您就可以从任何活动访问该数据。您所要做的就是使用唯一密钥将其置于共享首选项中,并使用相同的唯一密钥将其放在您需要的地方。希望能帮助到你。如果我的回答有帮助,别忘了点赞。谢谢。

【讨论】:

  • 感谢您的解释。我现在就试试。
  • 好的,完成后告诉我。另外,如果我的回答有帮助,别忘了点赞。谢谢。
  • 好吧。不用担心。 :)
  • 它表示从不使用私有方法 saveuserInformation。你能帮我解决这个错误吗?
  • 当你想保存用户信息时,你只需调用传入详细信息的方法。像这样: saveUserInformation("Vega Maya", 18) 。 Android Studio 会向您发出警告,因为您没有调用该方法。
【解决方案2】:

这就是您创建共享首选项的方式

SharedPreferences sp=getSharedPreferences("MYPREFNAME", Context.MODE_PRIVATE);

SharedPreferences.Editor editor=sp.edit;

这就是你将数据放入其中的方式

editor.putString(key,string);

this.is 是您检索该字符串的方式

sp.getString(key,DefaultString);

【讨论】:

    【解决方案3】:

    //在你的第一个活动中使用

    SharedPreferences sharedPreferences=getSharedPreferences("your_packagename", Context.MODE_PRIVATE);
    sharedPreferences.edit().putString("name","name_value").apply();
    
    sharedPreferences.edit().putInt("age",age_value).apply();
    

    //现在在您的第二个活动中检索数据

    SharedPreferences sharedPreferences=getSharedPreferences("your_packagename", Context.MODE_PRIVATE);
    String name=sharedPreferences.getString("name","");
    int age =sharedPreferences.getInt("age",0);
    

    【讨论】:

    • 我听不懂。它是在两个活动中创建的吗?我希望第一个活动存储名称、年龄和第二个活动只是查看它们并有一个指向第一个活动的后退按钮。
    • 有没有我必须在 submitbutton 方法中添加的代码?
    • 不..只需将此代码放入您的活动中..它会为您工作
    猜你喜欢
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    相关资源
    最近更新 更多