@Override
protected void onSaveInstanceState(Bundle outState){
……必要な情報をBundleに保存する……
}
@Override画面を回転させるイベントが発生すると、Androidはまず表示されている部品類のonSaveInstanceStateメソッドを呼び出します。ここで、必要な情報を引数に渡された「Bundle」というクラスのインスタンスを使って保管してから、画面に表示されている部品類が一度画面から外され消えます。そして新たに回転された状態でそれらの部品が用意されます。この時、再びイベントが発生し、「onRestoreInstanceState」メソッドが呼び出されます。ここで必要な情報を取り出して部品類に設定し、この作業が完了したところで画面に表示されます。
protected void onRestoreInstanceState(Bundle savedInstanceState){
……Bundleから必要な情報を取得し設定する……
}
[Bundle].putString( キー, 値 );Bundleでは、値を「キー」で管理しています。特定のキーを指定して値を保管し、取り出すときはそのキーで値を検索します。ここでは「putString」でTextViewのテキストを"MESSAGE"というキーに保管し、「getString」それを取り出してから再びTextViewに設定しています。こうすることで、TextViewのテキストを再現していたのです。
String 変数 = [Bundle].getString( キー );
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
package jp.tuyano; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.*; public class SampleApp extends Activity { private TextView text1; private EditText edit1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); text1 = (TextView)this.findViewById(R.id.text); edit1 = (EditText)this.findViewById(R.id.edit); Button btn = (Button)this.findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String s = "入力:" + edit1.getText(); text1.setText(s); } }); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); String s = (String)text1.getText() + "(回転前に保存)"; outState.putString("MESSAGE", s); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); String s = savedInstanceState.getString("MESSAGE"); text1.setText(s); } }
<< 前へ | 次へ >> |