0

我们使用 Intent 的额外 DS 跨活动传递值。如果我需要从 a 传递值Activityto Application,最好的方法是什么?

我用过SharedPreferences,但是我看不到正在设置的值。

我用了

PreferenceManager.getDefaultSharedPreferences(this).edit().putString(CURRENT_AIRLINE_IATA_CODE, AIRLINE_CODE);

为了阅读它,我使用了

PreferenceManager.getDefaultSharedPreferences(this).getString(CURRENT_AIRLINE_IATA_CODE, null);

Android 文档指出 SharedPreferences 不能用于跨不同进程传递信息Note: currently this class does not support use across multiple processes. This will be added later. http://developer.android.com/reference/android/content/SharedPreferences.html

4

3 回答 3

0

如果您将其设置为这样,则可以将值存储在应用程序中。

public class MyApplication extends Application {
    private static MyApplication singleton;
    private Object value;

    // Returns the application instance 
    public static TVGidsApplication getInstance() {
        return singleton;
    }

    public final void onCreate() {
        super.onCreate() 
        singleton = this;
    }  

    public Object getValue(){
        return value;
    }

    public void setValue(Object value){
        this.value = value;
    }
}

然后从任何Activity(甚至任何其他类)中,您可以通过调用将值传递给应用程序,并通过调用从MyApplication.getInstance().setValue(value) 任何类中获取它。 当然也可以是任何其他类型ActivityMyApplication.getInstance().getValue()valueObject

于 2013-07-26T11:41:56.387 回答
0

像这样设置

    SharedPreferences settings = getSharedPreferences(NAME, 0);
            SharedPreferences.Editor editor = settings.edit();
            editor.putString("send","hello");

变成这样

SharedPreferences prefs = getSharedPreferences(
                "newshare",
                Context.MODE_PRIVATE);
         prefs.getString("send","not found");
于 2013-07-26T11:02:34.480 回答
0
    public static void record(String key,Context context,String value)
{

    SharedPreferences pref=PreferenceManager.getDefaultSharedPreferences(context);
    SharedPreferences .Editor editor=pref.edit();

    editor.putString(key,value );
    editor.commit();


}



public static String getRecord(String key,Context context)
{
    return PreferenceManager.getDefaultSharedPreferences(context).getString(key,PREF_DEFAULT_VALUE);

}

您可以使用这些方法存储和获取偏好...希望它会有所帮助。

于 2013-07-26T13:04:26.733 回答