2012-10-25 12 views
13

Ich habe ein paar Fragen zum Testen von DialogFragment Klassen mit Robolectric, da ich im Internet auf einen Mangel an Informationen zu diesem Thema gestoßen bin.Testen von DialogFragments mit Robolectric

  1. Was sind die richtigen Argumente zu onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) passieren?
  2. Ich habe Probleme Argumente DialogFragment vorbei, ich bin den folgenden Ansatz:

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

Jedes Mal, wenn der Code versucht, Argumente für den Zugriff mit einem NullPointerException abstürzt.

Ich werde alle Ideen zu diesen Themen sehr schätzen.

+0

Können Sie Code für Ihre DialogFragment-Klasse hinzufügen? Gibt es einen Grund, warum Sie DialogFragment # show() nicht verwenden? Die Dokumentation zeigt, wie Sie DialogFragment erweitern sollten, um Ihren eigenen benutzerdefinierten Dialog zu erstellen: http://developer.android.com/reference/android/app/DialogFragment.html – user697495

+0

Haben Sie das gelöst? –

+0

@Egor, hast du das gelöst? –

Antwort

0

Sie verwenden die DialogFragment falsch. Sie sollten das Fragment nicht übergeben, sondern rufen Sie show auf der 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() macht fast dasselbe - fügt der Transaktion das DialogFragment hinzu und schreibt es fest. – Egor

Verwandte Themen