无法从共享的首选项获取数据

时间:2020-02-05 10:02:29

标签: android

我正在保存电话号码。在共享的首选项和另一项活动中,我尝试获取电话号码。共享首选项。

private static final String KEY_PHONE = "keyphone";

SharedPreferences sharedPreferences = getSharedPreferences("simplifiedcodingsharedpref", Context.MODE_PRIVATE);
                                SharedPreferences.Editor editor = sharedPreferences.edit();
                                editor.putString(KEY_PHONE, "3454534565");
                                editor.apply();

在另一项活动中,我使用的是这样的内容:

SharedPreferences sp = getSharedPreferences("simplifiedcodingsharedpref", Context.MODE_PRIVATE);
String phone_id = sp.getString("keyphone","");

Toast.makeText(getApplicationContext(), phone_id, Toast.LENGTH_SHORT).show();

我的问题是我在烤面包消息中没有收到电话号码,而在烤面包中却空了

请让我知道如何在其他活动中拨打电话,请多多帮助。

谢谢

3 个答案:

答案 0 :(得分:0)

您可以使用它在共享首选项中存储一个值:

SharedPreferences sharedPreferences = 
getSharedPreferences("simplifiedcodingsharedpref", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = 
sharedPreferences.edit();
editor.putString("keyphone", "3454534565");
editor.apply();

然后用它来检索它:

SharedPreferences sp = getSharedPreferences("simplifiedcodingsharedpref", 
Context.MODE_PRIVATE);
String phone_id = sp.getString("keyphone","");

Toast.makeText(getApplicationContext(), phone_id, Toast.LENGTH_SHORT).show();

答案 1 :(得分:0)

主要问题在这里:editor.putString(KEY_PHONE, "3454534565");

要写:

SharedPreferences preferences = getSharedPreferences("simplifiedcodingsharedpref", Context.MODE_WORLD_WRITEABLE);
SharedPreferences.Editor editor = preferences.edit();
 editor.putString("KEY_PHONE", "3454534565");
editor.apply();

阅读:

SharedPreferences prfs = getSharedPreferences("simplifiedcodingsharedpref", Context.MODE_PRIVATE);
String phone_id= prfs.getString("KEY_PHONE", "");
Toast.makeText(getApplicationContext(), phone_id, Toast.LENGTH_SHORT).show();

答案 2 :(得分:0)

除了一件事情,您做对了所有事情。

检索字符串值时,不能仅将值字段设置为“”。

在检索String时,默认值为null;在检索布尔值时,默认值为false;在检索布尔值时,默认值为false。

所以不要使用

String phone_id = sp.getString("keyphone","");

您需要使用

String phone_id = sp.getString("keyphone", null);
相关问题