構成の変更が発生したときにandroid:configChanges="keyboardHidden|orientation|screenSize"
状態を失うことがないように、マニフェストで使用しようとしています。VideoView
これは、構成で自分でレイアウトを選択する必要があることを意味します。私が抱えている問題はonCreate
、ここで使用するビューを最初に初期化するときです。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_LANDSCAPE) {
setContentView(R.layout.activity_make_photo_video_land);
} else if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_PORTRAIT) {
setContentView(R.layout.activity_make_photo_video);
}
}
適切なレイアウトを選択します。しかし、次のように構成変更でレイアウトを調整する必要がある場合:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_LANDSCAPE) {
setContentView(R.layout.activity_make_photo_video_land);
} else if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_PORTRAIT) {
setContentView(R.layout.activity_make_photo_video);
}
}
レイアウトの同じインスタンスを使用するのではなく、再読み込みするため、VideoView
黒くなります。その後、ボタンを押すことができません。
初期レイアウトを再利用する方法はありますか? このようなビューをsetContentView(R.layout.activity_make_photo_video_land);
オブジェクトに設定しようとしましActivity activity
たが、IDE では許可されませんActivity is incompatible with void
。そのビューへの参照を取得できれば、それを再利用できるからです。または、私が見ていないこれを行う簡単な方法はありますか?
ありがとう。