2014-05-23 68 views
0

我有一個實現LoaderManager.LoaderCallbacks接口的FragmentActivity,我想將其更改爲只是一個片段,以便我可以在我的splashscreen的背景中啓動它以從我的數據庫中獲取信息。但是,當我改變FragmentActivity到碎片我onCreateLoader得到一個錯誤:Android CursorLoader不工作在片段

public class CursorLoaderTest extends Fragment implements 
    LoaderManager.LoaderCallbacks<Cursor> { 

... 
... 

@Override 
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) 
{ 
    // Grab URI corresponding with menuItem table 
    Uri CONTENT_URI = TabletContentProvider.MENU_ITEM_CONTENT_URI; 
    // THIS IS WHERE THE ERROR IS 
    return new CursorLoader(this, CONTENT_URI, null, null, null, null); 
} 

它想讓我到CursorLoader對象構造改變爲:

CursorLoader(Context); 

而這顯然是行不通的。我正在與一個團隊合作項目,並且負責數據庫操作,所以我不太熟悉Fragments/FragmentActivities,因爲我沒有爲應用程序的這些部分編寫代碼。我在這裏錯過了很明顯的東西嗎

回答

5

A CursorLoader有兩個構造函數 - 您在那裏使用的構造函數,以及一個只需要Context(這是您的IDE所建議的正確構造函數)。

你打電話的人需要一個Context作爲第一個參數。當您在Activity中時,您可以通過this,因爲ActivityContext。一個Fragment不是Context雖然如此強似this,你會通過你的含有活動:

return new CursorLoader(getActivity(), CONTENT_URI, null, null, null, null); 
+0

真棒,太感謝你了! –