2012-10-08 181 views
2

我只是想使用我的應用程序的Activity之一中的SharedPreferences存儲String name ="Android",後者我想在同一個Application的BroadcastReceiver類中檢索此String。Android共享偏好

我嘗試了一切。請幫幫我。

回答

1

請按照下面的代碼。創建一個名爲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 
+0

愛你的男人..現在在月球上.....:D:D謝謝你!它工作dddd yehooo ............... – user1728664

+0

它只會工作在特定的時間,如果上下文從內存中刪除此代碼拋出nullpointerexception –

-1

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

        editor.commit(); 

現在嘗試在Reciever類的代碼添加以下

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

其給出此錯誤「MODE_PRIVATE無法解析爲一個變量「 – user1728664

+0

嘗試改變模式,如果它不工作,然後嘗試清理項目 – Syn3sthete

0

對於設置在SharedPreferences值...

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();  

爲獲得價值形式SharedPreferences ...

preferences.getString(PREF_STRING, "Default value"); 
0

如果你能發表你厭倦的代碼,那將會更容易一些。

順便說一句,

public abstract void onReceive (Context context, Intent intent) 

這種方法會給你的上下文實例。你可以使用它來獲得偏好。

context.getPreferences(MODE_PRIVATE); 

希望這會有所幫助。