2012-10-25 17 views
13

Mam kilka pytań dotyczących testowania klas DialogFragment z Robolectric, ponieważ napotkałem całkowity brak informacji na ten temat w Internecie.Testowanie DialogFragmentów z Robolectricem

  1. Jakie są właściwe argumenty, aby przejść do onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)?
  2. mam problemy przechodzącą argumenty DialogFragment używam następujące podejście:

    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(); 
    

Gdy kod próbuje uzyskać dostęp do argumentów to wywala z NullPointerException.

Doceniam wszelkie pomysły na te tematy.

+0

Czy możesz dołączyć kod do swojej klasy DialogFragment? Czy istnieje powód, dla którego nie używasz DialogFragment # show()? W dokumentacji pokazano, jak rozszerzyć DialogFragment, aby utworzyć własne okno dialogowe: http://developer.android.com/reference/android/app/DialogFragment.html – user697495

+0

Rozwiązałeś to? –

+0

@ Egor, rozwiązałeś to? –

Odpowiedz

0

Użyto błędnego ustawienia DialogFragment. Nie powinieneś zatwierdzać fragmentu, ale zadzwoń pod numer show na DialogFragment.

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() robi prawie to samo - dodaje DialogFragment do transakcji i zatwierdza ją. – Egor