2012-10-25 28 views
13

Robolectric ile DialogFragment sınıflarını test etme hakkında birkaç sorum var, çünkü bu konu hakkında internette bilgi eksikliği ile karşılaştım.DialogFragments with Robolectric

  1. onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)'a geçmek için doğru argümanlar nelerdir?

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

kod bir NullPointerException çöküyor argümanları erişmeye çalıştığında zaman:

  • sorun aşağıdaki yaklaşım kullanıyorum, DialogFragment argümanlar geçiremez.

    Bu konulardaki herhangi bir fikri çok takdir edeceksiniz.

  • +0

    DialogFragment sınıfınızın kodunu da içerirmısınız? DialogFragment # show() kullanmanın bir nedeni var mı? Belgeler, kendi özel iletişiminizi oluşturmak için DialogFragment öğesini nasıl genişletmeniz gerektiğini gösterir: http://developer.android.com/reference/android/app/DialogFragment.html – user697495

    +0

    Bunu çözdünüz mü? –

    +0

    @Egor, bunu çözdünüz mü? –

    cevap

    0

    DialogFragment yanlış kullanıyorsunuz. Parçayı işlememelisiniz, ancak DialogFragment numaralı telefondan show'u arayın.

    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() hemen hemen aynı şeyi yapar - DialogFragmenti işleme ekler ve bunu taahhüt eder. – Egor

    İlgili konular