アプリに文字列配列リストがあり、メイン アクティビティで Web サイトから取得したデータが含まれています。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
は同じサイズの文字列配列リストです。
ありがとう!