我正在保存电话号码。在共享的首选项和另一项活动中,我尝试获取电话号码。共享首选项。
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();
我的问题是我在烤面包消息中没有收到电话号码,而在烤面包中却空了
请让我知道如何在其他活动中拨打电话,请多多帮助。
谢谢
答案 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);