Android首选项不起作用

时间:2014-06-20 02:57:54

标签: java android android-preferences

我是java的惊人世界的新手,但我的Obj-C体验告诉我这段代码:

Preferences prefs = Preferences.userRoot();
String tickets = prefs.get("tickets", "???");
Log.d("Prefs", tickets);
prefs.put("tickets", "!!!");

首次运行时应生成???,第二次运行时生成!!!。但事实并非如此。我一直看到???

我错过了什么?也许一些权限?也许在prefs对象上调用一些save()方法?

我也试过了:

Preferences prefs = Preferences.userRoot().node(this.getClass().getName());

也没有运气。

3 个答案:

答案 0 :(得分:1)

我认为您可能正在寻找SharedPreferences ..." context"是您的ActivityApplication

尝试:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String tickets = prefs.getString("tickets", "???");
Log.d("Prefs", tickets);
prefs.edit().putString("tickets", "!!!").commit();

答案 1 :(得分:0)

好像你想使用SharedPreferences存储一些数据。要写入首选项,请尝试以下函数:

public void putPref(Context context, String key, String value){
    SharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
    SharedPreferences.Editor editor = SharedPrefs.edit();
    editor.putString(key, value);
    editor.commit();
}

如果您想使用密钥"???"设置值"tickets",请使用:

putPref(context, "tickets", "???");

您可以使用以下方法检索该值:

SharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);

如果您想获得密钥"ticket"的价值,请使用:

SharedPrefs.getString("tickets", "default");

如果找不到首选项,则"default"是默认值。希望这会有所帮助。

答案 2 :(得分:0)

您可以使用以下功能

将值保存到首选项中
public static void saveTickets(String customerId,Context context) 
        {
            SharedPreferences preferences;
            preferences = context.getSharedPreferences("sample",Context.MODE_PRIVATE);
            preferences.edit().putString("tickets", customerId).commit();
        }

使用以下函数从首选项中获取值。您需要传递的参数只是上下文

public static String getTickets(Context context) 
    {
        SharedPreferences preferences;
        preferences = context.getSharedPreferences("sample",Context.MODE_PRIVATE);
        String  customerId = preferences.getString("tickets", "");
        return customerId;
    }