如何使用SharedPreferences

Sim*_*inn 5 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();
}
Run Code Online (Sandbox Code Playgroud)

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

我看了很多网站寻求帮助,但似乎都使用相同的代码.我究竟做错了什么?

Pau*_*rke 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();
}
Run Code Online (Sandbox Code Playgroud)


小智 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();
  }
}
Run Code Online (Sandbox Code Playgroud)

SharedPreferences是android中的StorageOptions之一,用于存储用户首选项.这可以在整个应用程序中访问.AsredPreferences的示例. 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();
    }
 }
Run Code Online (Sandbox Code Playgroud)