发生java.util.NoSuchElementException

发生java.util.NoSuchElementException,java,android,arrays,sharedpreferences,nosuchelementexception,Java,Android,Arrays,Sharedpreferences,Nosuchelementexception,我使用共享首选项在类中存储了一个整数数组。该项目正在以我想要的方式存储 但当我从另一个类访问它时,应用程序崩溃,日志显示java.util.NoSuchElementException。我无法理解背后的原因 这就是我存储阵列的方式 SharedPreferences prefs = getPreferences(MODE_MULTI_PROCESS); StringBuilder str = new StringBuilder();

我使用共享首选项在类中存储了一个整数数组。该项目正在以我想要的方式存储

但当我从另一个类访问它时,应用程序崩溃,日志显示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());
SharedReferences prefs=getPreferences(模式多进程);
StringBuilder str=新的StringBuilder();
对于(int i=0;i
这就是我找回它的方式-

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);
SharedReferences prefs=getPreferences(模式多进程);
String savedno=prefs.getString(“否”,即“”);
StringTokenizer sn=新的StringTokenizer(savedno,“,”);
for(int i=0;i
Logcat在我注释为错误的行中显示错误。

一旦添加了共享首选项,您必须提交()您的共享首选项

 prefs.edit().putString("no", str.toString()).commit();
除非提交,否则添加的数据不会保存在共享首选项中

另外,最好使用hasMoreElements()检查它是否有更多元素

for(int i=0;i
我想这是可行的。但是现在我的元素没有添加到列表视图中。列表视图仍然是空的。这样我们就处理了异常。现在的问题是,不知何故,您没有在序列号中获取数据。只需添加一个断点并检查您是否从首选项中获取值。所有错误都消失了!我现在得到了我想要的。T谢谢你的帮助!听到这个消息很高兴。快乐编码:)
   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);
       }
    }