我的应用程序中有一个字符串数组列表,其中包含从主要活动中的网站提取的数据。我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
。还有headlines
和links
是相同大小的字符串数组列表。
谢谢!