java.util.NoSuchElementException 发生
java.util.NoSuchElementException occurs
我使用共享首选项将整数数组存储在 class 中。该项目正在按照我想要的方式存储。
但是当我从另一个 class 访问它时,应用程序崩溃并且 Logcat 显示 java.util.NoSuchElementException。我无法理解背后的原因。
这是我存储数组的方式。
SharedPreferences prefs = getPreferences(MODE_MULTI_PROCESS);
StringBuilder str = new StringBuilder();
for (int i = 0; i < MyAdaptertwo.rowitems.size(); i++) {
str.append(MyAdaptertwo.rowitems.get(i).no).append(",");
}
prefs.edit().putString("no", str.toString());
这是我检索它的方式-
SharedPreferences prefs = getPreferences(MODE_MULTI_PROCESS);
String savedno = prefs.getString("no", "");
StringTokenizer sn = new StringTokenizer(savedno, ",");
for (int i = 0; i < Integer.parseInt(validtotal_order); i++) {
list_order item = new list_order(st.nextToken(),sc.nextToken(),sn.nextToken());//Error
rowitems.add(item);
Logcat 在我评论为错误的行中显示错误。
您必须在添加项目后提交()您的共享首选项。
prefs.edit().putString("no", str.toString()).commit();
除非您提交,否则添加的数据不会保存在共享首选项中。
此外,最好使用 hasMoreElements() 检查它是否有更多元素。
for (int i = 0; i < Integer.parseInt(validtotal_order); i++) {
if(sn.hasMoreElements())
{
list_order item = new list_order(st.nextToken(),sc.nextToken(),sn.nextToken());//Error
rowitems.add(item);
}
}
我使用共享首选项将整数数组存储在 class 中。该项目正在按照我想要的方式存储。
但是当我从另一个 class 访问它时,应用程序崩溃并且 Logcat 显示 java.util.NoSuchElementException。我无法理解背后的原因。
这是我存储数组的方式。
SharedPreferences prefs = getPreferences(MODE_MULTI_PROCESS);
StringBuilder str = new StringBuilder();
for (int i = 0; i < MyAdaptertwo.rowitems.size(); i++) {
str.append(MyAdaptertwo.rowitems.get(i).no).append(",");
}
prefs.edit().putString("no", str.toString());
这是我检索它的方式-
SharedPreferences prefs = getPreferences(MODE_MULTI_PROCESS);
String savedno = prefs.getString("no", "");
StringTokenizer sn = new StringTokenizer(savedno, ",");
for (int i = 0; i < Integer.parseInt(validtotal_order); i++) {
list_order item = new list_order(st.nextToken(),sc.nextToken(),sn.nextToken());//Error
rowitems.add(item);
Logcat 在我评论为错误的行中显示错误。
您必须在添加项目后提交()您的共享首选项。
prefs.edit().putString("no", str.toString()).commit();
除非您提交,否则添加的数据不会保存在共享首选项中。
此外,最好使用 hasMoreElements() 检查它是否有更多元素。
for (int i = 0; i < Integer.parseInt(validtotal_order); i++) {
if(sn.hasMoreElements())
{
list_order item = new list_order(st.nextToken(),sc.nextToken(),sn.nextToken());//Error
rowitems.add(item);
}
}