在共享首选项中保存值给出错误
Saving value in Shared Preference giving error
我想存储一个位于 if 块内的字符串值,并且我想访问它之外的值。现在我尝试使用此代码,但它给了我错误,并且通过说 "Print ln needs a message" 强制关闭了应用程序。它是一个广播接收器 class,此代码位于 OnReceive 方法中。
我试过这个代码:
if (!available)
for (String key : contactNumber.keySet()) {
String msgSender = contactNumber.get(key);
extractedContact = Utilities.extractNumbers(key);
preferences = context.getSharedPreferences("progress",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("number", extractedContact);
editor.apply();
}
String showNumber = preferences.getString("number", "");
Toast.makeText(context, showNumber + "Hello", Toast.LENGTH_LONG).show();
现在我只想将提取的联系人值存储在共享首选项中,然后我在 if 块之外检索它,但它给我错误。谁能知道问题出在哪里?我怎样才能取回存储的值
替换这行代码
editor.apply();
来自
editor.commit();
尝试在从首选项中获取值之前添加以下行。
如下,
preferences = context.getSharedPreferences("progress",Context.MODE_PRIVATE);
String showNumber = preferences.getString("number", "");
Toast.makeText(context, showNumber + "Hello", Toast.LENGTH_LONG).show();
表示Preference未初始化,需要初始化
for (String key : contactNumber.keySet()) {
..
}
所以,
if (!available)
{
preferences = context.getSharedPreferences("progress",Context.MODE_PRIVATE);
for (String key : contactNumber.keySet()) {
String msgSender = contactNumber.get(key);
extractedContact = Utilities.extractNumbers(key);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("number", extractedContact);
editor.apply();
}
String showNumber = preferences.getString("number", "");
Toast.makeText(context, showNumber + "Hello", Toast.LENGTH_LONG).show();
...
}// if (!available) close bracket
谢谢..
if (!available)
for (String key : contactNumber.keySet()) {
String msgSender = contactNumber.get(key);
extractedContact = Utilities.extractNumbers(key);
preferences = context.getSharedPreferences("progress",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("number", extractedContact);
editor.apply();
}
String showNumber = preferences.getString("number", "");
Toast.makeText(context, showNumber + "Hello", Toast.LENGTH_LONG).show();
现在我只想将提取的联系人值存储在共享首选项中,然后我在 if 块之外检索它,但它给我错误。谁能知道问题出在哪里?我怎样才能取回存储的值
替换这行代码
editor.apply();
来自
editor.commit();
尝试在从首选项中获取值之前添加以下行。
如下,
preferences = context.getSharedPreferences("progress",Context.MODE_PRIVATE);
String showNumber = preferences.getString("number", "");
Toast.makeText(context, showNumber + "Hello", Toast.LENGTH_LONG).show();
表示Preference未初始化,需要初始化
for (String key : contactNumber.keySet()) {
..
}
所以,
if (!available)
{
preferences = context.getSharedPreferences("progress",Context.MODE_PRIVATE);
for (String key : contactNumber.keySet()) {
String msgSender = contactNumber.get(key);
extractedContact = Utilities.extractNumbers(key);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("number", extractedContact);
editor.apply();
}
String showNumber = preferences.getString("number", "");
Toast.makeText(context, showNumber + "Hello", Toast.LENGTH_LONG).show();
...
}// if (!available) close bracket
谢谢..