質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

3035閲覧

Android studio dialogfragmentからdialogfragmentへの画面遷移

hood

総合スコア351

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2018/07/21 07:53

編集2018/07/21 08:38

###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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Java

1 flagmentManager = getActivity().getSupportFragmentManager();

のようにしたら通らないでしょうか?

投稿2018/07/21 09:58

keicha_hrs

総合スコア6766

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hood

2018/07/21 12:30

keiさんですね! Yahoo知恵袋のほうでも、こっちでもお力を貸していただいて、なんとお礼を申し上げてよいのやら・・・(何かしらの形でお礼でもできたらいいんですけどね・・・) お教えいただたコードですが、コピペしたら、まるでパズルのピースのようにかっちりはまり、上手く動作しました! 無意識の内「天才か・・・この人・・・」なんて呟いてしまいました・・・(笑) まあ、この話は余談として、とにかく本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問