5

我是 android 开发新手 - 使用一本名为 Sams Teach Yourself Android Application Development in 24 hours 的书。到目前为止一直关注它,但在尝试使用 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();
}

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

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

4

2 回答 2

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();
}
于 2010-10-03T21:03:56.460 回答
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 之一,用于存储用户首选项。这可以在整个应用程序中访问。SharedPreferences 的示例。 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();
    }
 }
于 2013-04-14T17:22:37.333 回答