问题解决了。
在我第一次关闭它之前,共享首选项应该包含任何内容,但错误显示 IndexOutOfBoundsExceptions。怎么来的?
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedPreferences pref = getSharedPreferences("myfile", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.commit();
if(pref.contains("key")){
List.addAll(pref.getStringSet("key", null));
};
}
@Override
public void onStop(){
super.onStop();
if(size>0){
Set<String> set1 = new HashSet<String>();
set1.addAll(List);
SharedPreferences pref = getSharedPreferences("myfile", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putStringSet("key", set1);
editor.commit();
};
}
我不确定在 logcat 中要查找什么,所以我只是将其全部粘贴。
06-05 13:05:30.023: E/AndroidRuntime(1625): 致命异常: main 06-05 13:05:30.023: E/AndroidRuntime(1625): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com. example.vocabulary/com.example.vocabulary.MainActivity}:java.lang.IndexOutOfBoundsException:无效索引 0,大小为 0 06-05 13:05:30.023:E/AndroidRuntime(1625):在 android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2059) 06-05 13:05:30.023: E/AndroidRuntime(1625): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 06-05 13:05:30.023: E/AndroidRuntime (1625): 在 android.app.ActivityThread.access$600(ActivityThread.java:130) 06-05 13:05:30.023: E/AndroidRuntime(1625): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java :1195) 06-05 13:05:30.023: E/AndroidRuntime(1625): 在 android.os.Handler。dispatchMessage(Handler.java:99) 06-05 13:05:30.023: E/AndroidRuntime(1625): 在 android.os.Looper.loop(Looper.java:137) 06-05 13:05:30.023: E/ AndroidRuntime(1625): 在 android.app.ActivityThread.main(ActivityThread.java:4745) 06-05 13:05:30.023: E/AndroidRuntime(1625): 在 java.lang.reflect.Method.invokeNative(Native Method) 06-05 13:05:30.023: E/AndroidRuntime(1625): 在 java.lang.reflect.Method.invoke(Method.java:511) 06-05 13:05:30.023: E/AndroidRuntime(1625): 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 06-05 13:05:30.023: E/AndroidRuntime(1625): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:553) 06-05 13:05:30.023: E/AndroidRuntime(1625): at dalvik.system.NativeStart.main(Native Method) 06-05 13:05:30.023: E/AndroidRuntime(1625): Caused作者:java.lang。IndexOutOfBoundsException:索引 0 无效,大小为 0 06-05 13:05:30.023: E/AndroidRuntime(1625): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251) 06-05 13:05:30.023: E /AndroidRuntime(1625): at java.util.ArrayList.get(ArrayList.java:304) 06-05 13:05:30.023: E/AndroidRuntime(1625): at com.example.vocabulary.MainActivity.PrintWords(MainActivity. java:70) 06-05 13:05:30.023: E/AndroidRuntime(1625): 在 com.example.vocabulary.MainActivity.ShitsToDoWhenCodeSucks(MainActivity.java:118) 06-05 13:05:30.023: E/AndroidRuntime( 1625): 在 com.example.vocabulary.MainActivity.onCreate(MainActivity.java:145) 06-05 13:05:30.023: E/AndroidRuntime(1625): 在 android.app.Activity.performCreate(Activity.java:5008 ) 06-05 13:05:30.023: E/AndroidRuntime(1625): 在 android.app.Instrumentation。callActivityOnCreate(Instrumentation.java:1079) 06-05 13:05:30.023: E/AndroidRuntime(1625): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 06-05 13:05:30.023: E/ AndroidRuntime(1625): ... 11 更多