Activity.onSaveInstanceState

回転などで、Activityが破棄されようとしている時、Activity.onSaveInstanceStateに来るので、ここで引数のBundleに、独自のViewなどの情報を保存しておく。

Activity  |  Android Developers
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
AndroidのActivityは再作成に備えてSavedInstanceStateを使おう - Ararami Studio

activity_main.xmlは、

TextViewとButton。
MainActivity.javaは、

package com.bgstation0.android.sample.activity_;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

// メインアクティビティ
public class MainActivity extends Activity implements OnClickListener{

	// アクティビティ生成時
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        
    	// 既定の処理.
    	super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // button1の初期化
        Button button1 = (Button)findViewById(R.id.button1);	// button1を取得.
        button1.setOnClickListener(this);	// thisをセット.
        
    }

    // クリックされた時.
	@Override
	public void onClick(View v) {
		
		// TODO Auto-generated method stub
		// TextViewに"ABCDE"をセット.
		TextView textview1 = (TextView)findViewById(R.id.textview1);	// textview1を取得.
		textview1.setText("ABCDE");	// "ABCDE"をセット.
		
	}
    
}

button1が押されたら、textview1に"ABCDE"をセット。

最初はこうなっている
最初はこうなっている

最初はこうなっている。
button1を押すと、

"ABCDE"がセットされる
"ABCDE"がセットされる

"ABCDE"がセットされる。
ここで、回転させる。

Android エミュレータ画面回転しない:おじさんブログ:SSブログ

エミュレータの回転って、Ctrl+F11なのか。

"ABCDE"が消えてしまっている
"ABCDE"が消えてしまっている

"ABCDE"が消えてしまっている。
そこで、

onSaveInstanceStateで、TextViewのテキストを保存しておく。
今回は、Toast表示だけ。

この状態から
この状態から

この状態から、

button1で"ABCDE"
button1で"ABCDE"

button1で"ABCDE"。
回転で、

"ABCDE"がToast表示されたのでonSaveInstanceStateには来てる
"ABCDE"がToast表示されたのでonSaveInstanceStateには来てる

"ABCDE"がToast表示されたのでonSaveInstanceStateには来てる。
(EditTextなど一部のViewは、onSaveInstanceState処理をしなくても勝手に保持される。)

Sample/android/Activity/onSaveInstanceState/src/Activity at master · bg1bgst333/Sample · GitHub