首页 文章

如何使用SharedPreference在游戏中保存得分和名字?

提问于
浏览
0

我正在创建我的第一个Android应用程序,我没有足够的编程知识在这里不同于其他 . 所以请帮我解决这个问题 . 我想保存球员的名字和得分 . 我已经搜索过很多关于SharedPreference的内容,但是我无法理解它,特别是当我已经在我的活动中应用代码时 . 我已经尝试了两次,每次运行它时,都会显示“Not Responding”消息并关闭 . 但是当没有指出共享偏好的代码时,它可以正常工作 . 所以这就是我想要做的 . 在第一个游戏中,应该在时间结束后保存第一个分数(用户将键入其名称并单击保存) . 因此,当其他用户或玩家玩游戏时,应使用文本视图在屏幕中指示最高分数,在此最高分文本视图下方是当前分数文本视图 . 如果当前分数大于最高分,那么它应该覆盖分数 . 如果没有,那么最高分应该保持不变 . 我怎样才能做到这一点?

附:我有3个不同的活动需要这个SharedPreferences但具有相同的功能 . 提前致谢 . 并请更清楚地解释(因为有时我无法理解一些话)谢谢:)

This is the code i use, i put it in Oncreate

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("name", name);
editor.putInt("score", score);
editor.commit();

3 回答

  • 0

    试试这个

    SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
            SharedPreferences.Editor editor = sp.edit();
            editor.putString(key, value); //similar way you can push integer values
            editor.commit();
    
            SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
            sp.getString(key, null); //default value will be null in this case, if there is no such key
    

    您可以编写一个Utility类来重用您想要的方法 . 如下

    public class PreferenceUtility {
    
        public static void saveString(Activity activity, String key, String value){
            SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(activity.getApplicationContext());
            SharedPreferences.Editor editor = sp.edit();
            editor.putString(key, value);
            editor.commit();
        }
    
        public static String readString(Activity activity, String key, String defaultValue){
            SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(activity.getApplicationContext());
            return sp.getString(key, defaultValue);
        }
    
    }
    
  • 3
    static SharedPreferences sh_Pref;
        public static String Preference_Name = "AppData";
    
    
    
        public static String getPreference(String key, String Default,
                Activity activity)
        {
            sh_Pref = activity.getSharedPreferences(Preference_Name, Context.MODE_PRIVATE);
            return sh_Pref.getString(key, Default);
        }
    
        public static void setPreference(String key, String value, Activity activity)
        {
            if (value != null)
            {
    
                    sh_Pref = activity.getSharedPreferences(Preference_Name, Context.MODE_PRIVATE);
                    Editor editor = sh_Pref.edit();
                    editor.putString(key, value);
                    editor.commit();
    
    
            }
    
        }
    }
    

    **这里是来自SharedPreferences **的set和get值

  • 0

    我认为以下链接肯定会帮助你SharedPreferences Explained in detail .

相关问题