2013-03-09 30 views
0

這會是正確的:android中的片段 - 什麼時候調用它們的Activity可用?

public class DetailsFragment extends Fragment { 

    private final Intent intent = getActivity().getIntent(); 
    // use intent here and there 
} 

我知道在Servlet中一個必須等​​待的init()有上下文可用。 android中的情​​況是什麼?我們是否需要在OnCreate中做這樣的事情?作爲一個附加的問題 - 最後一個領域的這種用法是否被忽視?它是否搞亂了生命週期?

鏈接歡迎:)

回答

1

這會是正確的:

不,getActivity()將在初始化步驟返回null

android中的情​​況是什麼?

getActivity()肯定返回onCreateView()ActivityonActivityCreated(),後來生命週期方法。它可能會返回onCreate()中的Activity,但我不記得在片段上實施過onCreate(),所以我不能肯定地說。

作爲一個附加的問題 - 這種最終領域的使用皺眉?

好吧,既然這個是不行的(見上文),代碼崩潰通常是在... :-)

+1

愛皺眉道這樣的回答:「那崩潰時一般不贊成代碼」。確實。我相信,getActivity會在onAttach() – 2013-03-09 22:00:56

+0

之後返回一個活動,它應該在'onAttach'方法中可用。仍然是一個鏈接,詳細解釋所有這些將是受歡迎的;) – 2013-03-09 22:07:13

+0

@Mr_and_Mrs_D:關於爲什麼你的初始化不起作用,這是因爲沒有'Context'傳遞給構造函數,因此片段不可能有一個任何形式的「上下文」,更不用說其活動了。 http://developer.android.com/reference/android/app/Fragment.html#Fragment() – CommonsWare 2013-03-09 22:19:28

相關問題