2015-06-19 36 views
2

这是来自主要活动的点击事件。 s3是编辑的文本值,我想在广播接收器中使用来电时。访问来自广播接收机的共享偏好设置

public void clicksave(View shilpa) 
{ 
    SharedPreferences sharedPreferences = getSharedPreferences("my_prefs", MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putString("message", s3); 
    editor.commit(); 
} 

这是我使用的广播接收器访问的内容S3的值:

String pref = PreferenceManager.getDefaultSharedPreferences(context).getString("message", "Does not exist"); 

,但是当我试图在这里得到的值,它作为“不存在”,而不是正确的值。请告诉我,我要去哪里错了

回答

0

可能是因为您正在使用getDefaultSharedPreferences,请尝试使用

SharedPreferences prefs = getSharedPreferences("my_prefs", Context.MODE_PRIVATE); 
String yourString = prefs.getString("message", "Doesn't exist"); 
+0

它给我在getSharedPreferences说错误“的方法getSharedPreferences(字符串,整数)是未定义的类型MyCallReceiver” – kitzz

0

最后我得到了在主要活动这一

解决方案:

SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE); 
    Editor editor = pref.edit(); 
    editor.putString("message", message); 
    editor.commit(); 

在广播接收机中:

SharedPreferences pref = context.getSharedPreferences("MyPref", context.MODE_PRIVATE); 
     String a=pref.getString("message", null); 
0

在广播接收器试试这个

SharedPreferences pref = context.getSharedPreferences("my_prefs", Context.MODE_PRIVATE);