2012-12-01 43 views
25

Tôi có một Hoạt động mà tôi sử dụng startActivityForResult(intent,634). Nếu tôi sử dụng nó từ hoạt động, requestCode trong onActivityResult() là Ok. Nhưng nếu tôi sử dụng startActivityForResult(intent,634) từ DialogFragment của tôi trong Hoạt động này, tôi nhận được một requestCode khác, giống như 66170. Vậy tại sao nó lại xảy ra?tại sao tôi nhận được requestCode sai?

Trả lời

40

Điều này xảy ra vì nếu bạn sử dụng startActivityForResult từ hộp thoại, trong onActivityResult bạn sẽ nhận được mã yêu cầu của hộp thoại. Không phải từ Hoạt động khác của bạn. Và nếu bạn muốn nhận được requestCode đúng, bạn nên sử dụng getActivity().startActivityForResult(intent,requestCode) trong DialogFragment.

+13

Không có câu hỏi ngu ngốc như vậy – vodich

+1

Không hề ngu ngốc chút nào. Tôi chạy vào cùng một vấn đề. Đó là hành vi rất khó hiểu. – ajselvig

+0

Tôi gặp phải vấn đề tương tự khi gọi StartActivityForResult từ một đoạn –

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