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

时间:2015-01-02 11:19:03

标签: android sharedpreferences

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

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

这是我使用的代码,我把它放在Oncreate

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

3 个答案:

答案 0 :(得分:3)

我认为以下链接肯定可以帮助您SharedPreferences Explained in detail

答案 1 :(得分: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);
    }

}

答案 2 :(得分:0)

 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 **的设置和获取值

相关问题