2012-08-31 59 views
14

lấy từ http://developer.android.com/guide/topics/ui/settings.html:Bối cảnh trong một PreferenceFragment

Lưu ý: Một PreferenceFragment không có một đối tượng Context riêng của mình. Nếu bạn cần một đối tượng Context, bạn có thể gọi hàm getActivity(). Tuy nhiên, hãy gọi cẩn thận để gọi getActivity() chỉ khi đoạn được gắn với hoạt động . Khi đoạn chưa được đính kèm, hoặc được tách ra trong khi kết thúc vòng đời của nó, getActivity() sẽ trả về null.

Nếu tôi gọi getActivity() từ bên trong phương thức OnCreate() của một PreferenceFragment thì tôi có thể đảm bảo rằng đoạn được gắn với hoạt động của nó - hoặc có cách nào khác bạn sẽ lấy bối cảnh trong trường hợp này ?

Lý do tôi cần một Bối cảnh là tôi đang cố gắng sử dụng một thông báo Toast từ PreferenceFragment

+1

getActivity sẽ hoạt động – nandeesh

+0

Repo này thực hiện tốt công việc giải thích vòng đời hoạt động và phân đoạn. https://github.com/xxv/android-lifecycle/blob/master/README.md –

Trả lời

14

Nếu bạn muốn chắc chắn rằng một bối cảnh có sẵn, bạn sẽ cần phải chờ đợi cho đến khi Fragment đã được đính kèm cho một hoạt động. Gọi lại cho phương thức này là phương thức onAttach(Activity).

Tùy thuộc vào trạng thái vòng đời của đoạn của bạn, phương thức getActivity() cũng có thể trả về giá trị rỗng.

+0

Có phải không null giữa onResume và onPause không? – Ahmed

+0

Tôi đoán chúng ta sẽ không bao giờ biết. – Denny

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