【发布时间】:2015-05-01 04:11:01
【问题描述】:
我正在尝试将我在两个不同活动中保存的 SharedPreferenes 放入我的 SMS 活动中。它们都保存为字符串。
对于电话号码,它被保存为一个字符串,并且直接在 onActivityResult 内部(因为它正在从联系人列表中获取电话号码)
prefs = getSharedPreferences(prefName, MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
//---save the values in the EditText view to preferences---
editor.putString("phoneNumber", phn_no);
//---saves the values---
editor.commit();
phoneN.setText(phn_no);
Toast.makeText(getBaseContext(), "Saved",
Toast.LENGTH_SHORT).show();
对于消息,它有一个方法。
public void AddMessage() {
btnSave.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
prefs = getSharedPreferences(prefName, MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
//---save the values in the EditText view to preferences---
//editor.putInt("id", Integer.parseInt(e_id.getText().toString()));
editor.putString("message", editMessage.getText().toString());
//---saves the values---
editor.commit();
Toast.makeText(getBaseContext(), "Saved",
Toast.LENGTH_SHORT).show();
}
}
);
}
我试过这样做:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
String phoneNum = settings.getString("phoneNumber", "");
String message = settings.getString("message", "");
Log.d(TAG, message.toString());
Log.d(TAG, phoneNum.toString());
但它没有保存在这个。可能做错了...
提前感谢您的帮助!
编辑
也尝试过这样做:
SharedPreferences spref = PreferenceManager.getDefaultSharedPreferences(this);
if (spref.contains("message")) {
String mes = spref.getString("message", "");
Log.d(TAG, mes)
; }
if(spref.contains("phoneNumber")){
String phn = spref.getString("phoneN", "");
Log.d(TAG,phn);
}
它没有用。日志中没有显示任何内容。
【问题讨论】:
-
你得到了什么?
-
将最后一节更改为 context.getSharedPreferences(prefName, MODE_PRIVATE);
-
Nabin - 我正在获取已保存在 SharedPreferences 中的字符串。 shijil - 什么是“上下文”
标签: android android-activity sharedpreferences