2012-10-25 32 views
13

Tôi có một vài câu hỏi về kiểm tra các lớp học DialogFragment với Robolectric, vì tôi đã gặp phải thiếu thông tin về chủ đề này trên Internet.DialogFragments thử nghiệm với Robolectric

  1. Đối số thích hợp để chuyển đến onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) là gì?
  2. tôi gặp khó khăn khi đi qua lập luận để DialogFragment, Tôi đang sử dụng phương pháp sau đây:

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

Bất cứ khi nào các mã cố gắng truy cập đối số nó bị treo với một NullPointerException.

Sẽ đánh giá cao bất kỳ ý tưởng nào về các chủ đề này.

+0

Bạn có thể đưa mã cho lớp DialogFragment của mình không? Có lý do nào bạn không sử dụng DialogFragment # show() không? Tài liệu cho thấy cách bạn nên mở rộng DialogFragment để tạo hộp thoại tùy chỉnh của riêng bạn: http://developer.android.com/reference/android/app/DialogFragment.html – user697495

+0

Bạn đã giải quyết vấn đề này chưa? –

+0

@Egor, bạn đã giải quyết vấn đề này chưa? –

Trả lời

0

Bạn đang sử dụng sai số DialogFragment. Bạn không nên cam kết phân đoạn, nhưng gọi show trên số 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() gần như giống nhau - thêm DialogFragment vào giao dịch và cam kết nó. – Egor

Các vấn đề liên quan