1

我的应用程序中有一个字符串数组列表,其中包含从主要活动中的网站提取的数据。我onPause()用来保存这个数组列表中的大小和数据,这样如果用户导航回这个活动,数据就会保留。

到目前为止,如果单击列表中的某个项目,它将按预期打开新活动。硬按“后退”键也可以导航回主要活动,并再次显示我想要的列表内容。但是,从这里开始,如果我单击任何列表项,应用程序就会崩溃。Logcat 提到NullPointerException了关于我的数组列表的错误'Unable to Pause Activity'

我的代码:

对于 onPause()

protected void onPause(){
     super.onPause();
     SharedPreferences preferences=PreferenceManager.getDefaultSharedPreferences(this);
     SharedPreferences.Editor sEdit=preferences.edit();
     sEdit.putInt("size",headlinessize);
    for(int i=0;i<headlinessize-1;i++)
    {
         sEdit.putString("link"+i,links.get(i));    
        sEdit.putString("head"+i, headlines.get(i));

    }

     sEdit.commit();

}

对于 onCreate()

             SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    headlinessize=preferences.getInt("size",0);
    for(int j=0;j<headlinessize-1;j++)
    {
              headlines.add(preferences.getString("head"+j,null));
              links.add(preferences.getString("link"+j,null));
    }

我得到了headlines数组列表的错误!

它如何onPause()在第一次完美运行,并在任何后续项目单击时使应用程序崩溃?

一些附加信息:

我在一个单独的线程上连接到互联网,从一个站点中提取数据,将此数据传递给一个更新我的字符串数组列表的处理程序。它还在一个单独的变量中更新数组列表的大小headlinessize。还有headlineslinks是相同大小的字符串数组列表。

谢谢!

4

0 回答 0