Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android共享首选项_Android_Broadcastreceiver_Sharedpreferences - Fatal编程技术网

Android共享首选项

Android共享首选项,android,broadcastreceiver,sharedpreferences,Android,Broadcastreceiver,Sharedpreferences,我只想使用来自我的应用程序的某个活动的SharedReferences存储String name=“Android”,而后者我想在同一应用程序的BroadcastReceiver类中检索该字符串 我什么都试过了。请帮助我。按照下面的代码操作。创建一个名为PreferenceData的类。在那个类中有两种方法。一个用于将字符串存储到共享首选项中,另一个用于获取共享首选项的字符串 public class PreferenceData { static final String PREF_

我只想使用来自我的应用程序的某个活动的SharedReferences存储
String name=“Android”
,而后者我想在同一应用程序的BroadcastReceiver类中检索该字符串


我什么都试过了。请帮助我。

按照下面的代码操作。创建一个名为PreferenceData的类。在那个类中有两种方法。一个用于将字符串存储到共享首选项中,另一个用于获取共享首选项的字符串

public class PreferenceData 
{
    static final String PREF_STORE = "store_temp";

    public static SharedPreferences getSharedPreferences(Context ctx) 
    {
        return PreferenceManager.getDefaultSharedPreferences(ctx);
    }

    public static void setTempString(Context ctx, String str) 
    {
        Editor editor = getSharedPreferences(ctx).edit();
        editor.putString(PREF_STORE, str);
        editor.commit();
    }

    public static String getTempString(Context ctx) 
    {
        return getSharedPreferences(ctx).getString(PREF_STORE, "");
    }
}
如何访问它?

PreferenceData.getTempString(Pass Context);   // Get Shared Preference String
PreferenceData.setTempString(Pass Context,"Android") // Set String to Shared Preference
试试这个代码

SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
                    SharedPreferences.Editor editor = prefs.edit();
                    editor.putString("android", "your string"); // value to store

                    editor.commit();
现在在Receiver类中添加以下内容

SharedPreferences  mPrefs = getPreferences(MODE_PRIVATE);
    String android= mPrefs.getString("android", null);

如果以后不需要在代码中更改字符串,可以将字符串放入硬编码的“Strigs”静态变量中,然后只读取它。声明和读取字符串将更容易。如果您需要读取并更改字符串“Android”,请使用以下示例:

在SharedReferences中设置值

private final String PREF = "PREF";
private final String PREF_STRING = "PREF_STRING";

final SharedPreferences preferences = activity.getSharedPreferences(PREF, Activity.MODE_PRIVATE);        
preferences.edit().putString(PREF_STRING, "Android").commit();       
preferences.getString(PREF_STRING, "Default value");
用于从SharedReferences获取值

private final String PREF = "PREF";
private final String PREF_STRING = "PREF_STRING";

final SharedPreferences preferences = activity.getSharedPreferences(PREF, Activity.MODE_PRIVATE);        
preferences.edit().putString(PREF_STRING, "Android").commit();       
preferences.getString(PREF_STRING, "Default value");

如果你能发布你已经厌倦的代码,那就更容易弄清楚了

顺便说一下

 public abstract void onReceive (Context context, Intent intent)
此方法将为您提供上下文实例。您可以使用它来获取首选项

context.getPreferences(MODE_PRIVATE);

希望这能有所帮助。

它给出了这个错误“MODE\u PRIVATE无法解析为变量”尝试更改模式如果它不起作用,然后尝试清理项目Love you man..我现在在月球上….:D:D非常感谢!!它工作了dddd yehooo…………如果上下文从内存中删除,它将只在特定的时间内工作此代码带有throw nullpointerexception