如何使用SharedPreferences

时间:2010-10-03 20:56:19

标签: android sharedpreferences

我是Android开发的新手 - 在24小时内使用一本名为Sams Teach Yourself Android Application Development的书。到目前为止跟着它,但试图使用SharedPreferences卡住了。

在文件夹src / com.androidbook.triviaquiz中我有一个名为QuizActivity的文件,其中包含以下内容:

package com.androidbook.triviaquiz;

import android.app.Activity;
import android.os.Bundle;
import android.content.SharedPreferences;
public class QuizActivity extends Activity {

    public static final String GAME_PREFERENCES = "GamePrefs";
    SharedPreferences settings = getSharedPreferences(GAME_PREFERENCES, MODE_PRIVATE);
    SharedPreferences.Editor prefEditor = settings.edit();
    prefEditor.putString("UserName", "JaneDoe");
    prefEditor.putInt("UserAge", 22);
    prefEditor.commit();
}

这是本书告诉我使用的内容,但它会在以下几点返回错误:     在下面 ”。”在前两个prefEditor声明之后,     在(“UserName”,“JaneDoe”)下     在(“UserAge”,22);     并在“提交”下

我已经在大量网站上寻求帮助,但似乎都使用相同的代码。我做错了什么?

2 个答案:

答案 0 :(得分:7)

尝试将其放入onCreate()中。此外,getDefaultSharedPreferences()更容易:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    // Access the default SharedPreferences
    SharedPreferences preferences = 
    PreferenceManager.getDefaultSharedPreferences(this);
    // The SharedPreferences editor - must use commit() to submit changes
    SharedPreferences.Editor editor = preferences.edit();

    // Edit the saved preferences
    editor.putString("UserName", "JaneDoe");
    editor.putInt("UserAge", 22);
    editor.commit();
}

答案 1 :(得分:6)

仅在创建活动后使用SharedPreferences。在onCreate()中初始化SharedPreferences。

public class QuizActivity extends Activity {

public static final String GAME_PREFERENCES = "GamePrefs";
SharedPreferences settings; 
SharedPreferences.Editor prefEditor;

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  settings = getSharedPreferences(GAME_PREFERENCES, MODE_PRIVATE);
  prefEditor = settings.edit();

  prefEditor.putString("UserName", "JaneDoe");
  prefEditor.putInt("UserAge", 22);
  prefEditor.commit();
  }
}

SharedPreferences是android中的StorageOptions之一,用于存储用户首选项。这可以在整个应用程序中访问.ExtributePreferences的示例。 http://www.codestacks.in/2013/03/sharedpreferences/

示例代码:

package com.example.test;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.Toast;

public class SharedPreferencesDemo extends Activity {

SharedPreferences shared_preferences;
SharedPreferences.Editor shared_preferences_editor;
String test_string = "";

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    shared_preferences = getSharedPreferences("shared_preferences_test",
            MODE_PRIVATE);
    test_string = shared_preferences.getString("test_key", "Default");

    Toast.makeText(getApplicationContext(), test_string, Toast.LENGTH_SHORT)
            .show();

    shared_preferences_editor = shared_preferences.edit();

    shared_preferences_editor.putString("test_key", "Hello World");
    shared_preferences_editor.commit();

    test_string=shared_preferences.getString("test_key", "Default");

    Toast.makeText(getApplicationContext(), test_string,   Toast.LENGTH_SHORT).show();
    }
 }