私は検索ページに移動した後、結果をリストに戻すフラグメントアクティビティを持っています。時には活動を再作成する必要があるので、私はそうのような私のインスタンスのデータを保存しています:savedInstanceStateはnullではありませんが、データはありません
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
System.out.println("Saving instance state!");
// Save the instance data
// Filter data
Intent mIntent = new Intent(this, BasicMapDemoActivity.class);
filter.addFilterToIntent(mIntent);
outState = mIntent.getExtras();
// Save date data
int year = currentDate.getYear();
int month = currentDate.getMonth();
int day = currentDate.getDay();
outState.putInt("YEAR",year);
outState.putInt("MONTH",month);
outState.putInt("DAY",day);
// Location data
double latitude = mapLocation.latitude;
double longitude = mapLocation.longitude;
outState.putDouble("LATITUDE",latitude);
outState.putDouble("LONGITUDE",longitude);
// Other
outState.putString("VIEW_MODE",viewMode.toString());
outState.putString("SORT_TYPE",sortType);
outState.putInt("ZOOM", mapZoom);
}
は、その後、私はのonCreate内のデータを復元しようとしていますが、私はそこに着くとき、バンドルは、nullではありませんそれは私がそれに保存されたデータを含んでいません。次のget機能のすべてがゼロを返す(私はデータは上記のコードブロックの最後で非ゼロであることを確認した):
Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// If we are 're-creating', then get the old instance data, otherwise set defaults
if(savedInstanceState == null)
{
// Set up default instance data
currentDate = new Date(115,4,1);
filter = new ObajoFilter();
filter.start = currentDate;
filter.end = new Date(115,4,1,23,59,0);
viewMode = ViewMode.MAP;
sortType = "Distance";
mapLocation = userLocation;
mapZoom = 16;
} else {
// Get date data
int year = savedInstanceState.getInt("YEAR");
int month = savedInstanceState.getInt("MONTH");
int day = savedInstanceState.getInt("DAY");
currentDate = new Date(year,month,day);
バンドルを空にすることができるもの上の任意のアイデアを?私が理解しているところから、アプリケーションが完全に破棄されると、savedInstanceDataは空になります。
よう
onSaveInstanceState
何かに保持する情報を格納しています。 'onSaveInstanceState'と' onCreate'の中にlogcatを 'year'の印刷値として書くことができますか?それからあなたの質問に更新してください –