【问题标题】:How to use SharedPreferences [duplicate]如何使用 SharedPreferences [重复]
【发布时间】:2010-10-03 20:56:18
【问题描述】:

我是 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 语句之后, 在(“用户名”,“JaneDoe”)下 在(“用户年龄”,22)下; 并在“提交”下

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

【问题讨论】:

    标签: android sharedpreferences


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      仅在创建活动后使用 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();
          }
       }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-29
        • 1970-01-01
        • 2014-02-19
        • 2018-05-29
        • 2020-05-03
        • 2019-11-25
        • 2021-01-16
        • 1970-01-01
        相关资源
        最近更新 更多