我正在创建我的第一个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();
答案 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 **的设置和获取值