newInstanceメソッドでFragmentのインスタンスを作って引数を与えて、Fragment画面に移動するようにしましょう。
(忘れていたので備忘録も兼ねてます…)
Androidアプリで別の画面に切り替える処理を実装する際、Fragmentを使った画面遷移がよくつかわれると思うのですが、前の画面での設定などを取り込む必要がある時は、newInstanceメソッドでFragmentのインスタンスを作る必要があります。
newInstanceメソッドは、Android StudioでFragmentを自動生成した際のサンプルコードにあらかじめ作られるメソッドで、基本的な処理も一緒に実装されます。ただ、引数の型などを自分の受け渡したいものに合わせて変えていく必要があります。
なお、デフォルトでは引数はstring型が2つとなっています。
1 2 3 4 |
; title="in YourFragment"] public static YourFragment newInstance(...){ // pre-coded... } |
newInstanceの使い方は、呼び出し側のActivityでFragmentの切り替えを行う際に使います。
定義したFragmentのインスタンスを作る際、”new (フラグメント名)”のようにnewを使うのではなく、(クラス名).newInstanceという形でFragmentのインスタンスを生成します。
あとは、生成したインスタンスをFragmentManagerに入れて(addまたはreplace)、commitを呼び出せばOK。
1 2 3 4 5 6 7 |
; title="in MainActivity"] //create setting fragment //YourFragment fragment = new YourFragment(); // doesn't work //fragment.newInstance(...); // doesn't work YourFragment fragment = YourFragment.newInstance(...); // assign your preferable parameters //call the fragment //(...write your own cord) |
【参考】
Tech Sheets: Fragmentで、パラメータ付きの画面遷移を実装する
https://tech.mokelab.com/android/Fragment/argument.html
コメント