我是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); 并在“提交”下
我已经在大量网站上寻求帮助,但似乎都使用相同的代码。我做错了什么?
答案 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();
}
}