2016-10-05 15 views
0

私はBottomSheetDialogFragmentをDialogFragmentを呼び出し、リスナーの実装を通じてその結果を期待しています。 私はBottomSheetDialogFragment setTargetFragment(this、0)メソッドから設定しましたが、現在は「間違った最初の引数型... required android.app.Fragment」に直面しています。BottomSheetDialogFragmentでDialogFragment結果を受け取る

import android.support.design.widget.BottomSheetDialogFragment; 

public class MyBottomSheetDialogFragment extends BottomSheetDialogFragment { 
    //... 
    private void action(JSONObject item) { 
     DialogFragment dialog = MyDialogFragment.newInstance(item); 
     dialog.setTargetFragment(this, 0); 
           // ^^^^ Wrong first argument ... Required ... Fragment 
     dialog.show(getActivity().getFragmentManager(), getTag()); 
     //... 
    } 
    //... 
} 

MyDialogFragmentファイルの内容

import android.app.DialogFragment; 

public class MyDialogFragment extends DialogFragment { 

    public static MyDialogFragment newInstance(JSONObject payment_data) { 
     return new MyDialogFragment(); 
    } 

    //... 
} 
+0

「dialog.setTargetFragment((Fragment)this、0);」などのFragmentに明示的にキャストしようとしましたか?また、これはDialogFragmentがフラグメントクラスを継承していることを前提としています。 –

+0

提案したようにキャストしようとすると "InconvertibleTypes"という問題が発生します。 MyDialogFragmentはDialogFragmentを拡張します。クラスは別のファイルにあります。 – iwooli

+0

どのバージョンのFragmentおよびDialogFragmentを使用していますか?おそらくあなたが間違ったサポートライブラリからそれらを使用して –

答えて

0

私の意図はBottomSheetDialogFragmentからDialogFragmentを開き、ビットコールバックのような結果を得ることでした。

BottomSheetDialogFragmentが、Fragmentsを拡張するDialogFragmentを拡張するAppCompatDialogFragmentを拡張しても、BottomSheetDialogFragmentから「setTargetFragment」を取得できませんでした。そこで、私はアプローチを変更してcustoms listenersを使用することに決めました。私は今、BottomSheetDialogFragmentとDialogFragmentの両方をMainActivityからそれぞれ聞いて直接呼び出しています。

シンプルで正常に動作します。

関連する問題