2012-10-25 24 views
13

RobolectricでDialogFragmentのクラスをテストすることについていくつか質問があります。インターネットでこのトピックについての情報が不足しています。RobolectricでDialogFragmentsをテストする

  1. onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)に渡す正しい引数は何ですか?

    activity = new Activity(); 
    dialog = new DialogFragment(); 
    Bundle bundle = new Bundle(); 
    dialog.setArguments(bundle); 
    FragmentManager fm = activity.getSupportFragmentManager(); 
    FragmentTransaction ft = fm.beginTransaction(); 
    ft.add(dialog, "fragment"); 
    ft.commit(); 
    

コードは、それがNullPointerExceptionでクラッシュした引数にアクセスしようとするたびに:

  • 私はトラブル私は、次のアプローチを使用しています、DialogFragmentに引数を渡すを持っています。

    これらのトピックに関するご意見をいただければ幸いです。

  • +0

    DialogFragmentクラスのコードを含めることができますか? DialogFragment#show()を使用していない理由はありますか?ドキュメントでは、独自のカスタムダイアログを作成するためにDialogFragmentを拡張する方法を示しています。http://developer.android.com/reference/android/app/DialogFragment.html – user697495

    +0

    これを解決しましたか? –

    +0

    @ Egor、これを解決しましたか? –

    答えて

    0

    DialogFragmentが間違っています。フラグメントをコミットしないでくださいが、DialogFragmentshowを呼び出してください。

    activity = new Activity(); 
    dialog = new DialogFragment(); 
    Bundle bundle = new Bundle(); 
    dialog.setArguments(bundle); 
    FragmentManager fm = activity.getSupportFragmentManager(); 
    FragmentTransaction ft = fm.beginTransaction(); 
    dialog.show(ft, "fragment"); 
    
    +0

    show()はほぼ同じことを行います - DialogFragmentをトランザクションに追加し、それをコミットします。 – Egor

    関連する問題