如何使用SharedPreferences

我是刚刚开始android开发的 – 使用一本名为Sams的书,在24小时内自学Android应用程序开发。 跟着它到目前为止,但试图使用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(); } 

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

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

尝试把它放在你的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(); } 

只有在创build活动后才使用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(); } }