fragmentの回転時の処理

fragmentで回転させると当然activityが初期化されるけど、fragmentでインスタンスを保存してonCreateで復元させるときなぜかnullpointさんがでた。

onCreateでgetActivityはできないようだ。

仕方ないのでonCreateでBundleに保存さしてonStartで復元させるというやり方にした。

たぶんスマートではないけど動いたのでいいとする。

Bundle mSavedInstanceState;
@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    Log.d("Lifecycle", "onSaveInstanceState()");

    //インスタンスの保存

    outState.putString("kusuriInfo", kusuriInfo.getText().toString());
}

@Override
 public void onStart() {
 super.onStart();
if(mSavedInstanceState!=null){//回転時の復元処理
    String value = mSavedInstanceState.getString("kusuriInfo");
    kusuriInfo.setText(value);

}
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //ここだけだとnullpointなるからonstartで復元させる
    mSavedInstanceState=savedInstanceState;

}

↓弊社で開発、販売しているソフトウェアです↓

MediMonitor無料ダウンロード  

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です