gpt4 book ai didi

java - 在 Android Studio 中使用 SharedPreferences 保存列表

转载 作者:行者123 更新时间:2023-12-02 12:42:27 24 4
gpt4 key购买 nike

我正在编写一个应用程序,并努力使用 SharedPreferences 保存列表。它宣布我的应用程序在我运行应用程序时停止工作。请帮忙 !!这些是我的代码和我的 logcat:

SharedPreferences SPre1 = getSharedPreferences(Context.MODE_PRIVATE);
Set<String> WorkListSet = SPre1.getStringSet("NOTES_SET", new HashSet<String>());
List<String> WorkList = new ArrayList<String>(WorkListSet);

public void Update1()
{
SharedPreferences.Editor Editor = SPre1.edit();
Set<String> WorkListSet = new HashSet<String>(WorkList);
Editor.putStringSet("NOTES_SET", WorkListSet);
Editor.apply();
}

private SharedPreferences getSharedPreferences(int modePrivate) {
return null;
}

堆栈跟踪

Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Set android.content.SharedPreferences.getStringSet(java.lang.String, java.util.Set)' on a null object reference
at com.newthingtank.along.hello.MainActivity.<init>(MainActivity.java:38)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.Class.newInstance(Class.java:1606)
at android.app.Instrumentation.newActivity(Instrumentation.java:1066)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2226)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
at android.app.ActivityThread.access$800(ActivityThread.java:151) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5254) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)  07

最佳答案

SharedPreferences 中保存数组

public static boolean saveArray() {

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);

SharedPreferences.Editor mEdit1 = sp.edit();


mEdit1.putInt("Status_size", sKey.size());

for(int i=0;i<sKey.size();i++)
{
mEdit1.remove("Status_" + i);
mEdit1.putString("Status_" + i, sKey.get(i));
}

return mEdit1.commit();
}

SharedPreferences 加载数组数据

public static void loadArray(Context mContext) {  




SharedPreferences mSharedPreference1 = PreferenceManager.getDefaultSharedPreferences(mContext);

sKey.clear();

int size = mSharedPreference1.getInt("Status_size", 0);

for(int i=0;i<size;i++)
{
sKey.add(mSharedPreference1.getString("Status_" + i, null));
}

}

关于java - 在 Android Studio 中使用 SharedPreferences 保存列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44888594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com