###dialogfragmentからdialogfragmentへの画面遷移ができない
タイトル通りです。
オプション画面としてのdialogfragmentから、クレジット画面としてのdialogfragmentへ画面遷移をさせたいのですがうまくいきません。
Activityからオプション画面には遷移できるのですが、それと同じようにオプション画面にコードを書いてもgetSupportFragmentManager();
がエラーとなってしまうのです。
つまり内部的にFragmentTransaction.add() を持つcreditFragment.show() が使えないのです。
これはDialogfragment は普通のfragmentと違うということなのでしょうか?
そうだとしたらDialogfragamentから次のDialogfragmentへいく術はあるのでしょうか?
こういった記事も見つけました。
https://techlog.supersoftware.co.jp/2018/03/01/android_breakaway_from_dialogfragment/
やはり、画面遷移などをするにはfragmentから仮のdialogを作るほうがいいのですかね・・・
一応コードを下に記しておきます。見やすいよう適宜省略しております。
OptionFragment
lang
1import・・・ 2 3public class OptionFragment extends DialogFragment { 4 Button credit; 5 Dialog optionDialog; 6 DialogFragment creditFragment; 7 FragmentManager flagmentManager; 8 ---略--- 9 10 public OptionFragment() { 11 // Required empty public constructor 12 } 13 14 @Override 15 public Dialog onCreateDialog(Bundle savedInstanceState) { 16 optionDialog=super.onCreateDialog(savedInstanceState); 17 optionDialog.setCanceledOnTouchOutside(false); 18 return optionDialog; 19 } 20 21 @Override 22 public View onCreateView(LayoutInflater i, ViewGroup c, Bundle savedInstanceState){ 23 24 View content = i.inflate(R.layout.fragment_option, null); 25 26 credit = content.findViewById(R.id.button_credit); 27 credit.setOnClickListener(new View.OnClickListener() { 28 @Override 29 public void onClick(View v) { 30 credit(v); 31 } 32 }); 33 return content; 34 } 35 36 private void credit(View v) { 37 flagmentManager=getSupportFragmentManager();//ここが赤くなる 38 creditFragment = new CreditFragment();//内部的にFragmentTransaction.add() //を持つcreditFragment.show()も使えない。 39 creditFragment.show(flagmentManager, "credit"); 40 } 41 42}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/21 12:30