2017-03-04 60 views
1

誤差initLoader調用不會將「this」作爲第三個參數。下面「在 'android.support.v4.app.LoaderManager

initLoader(INT,android.os.Bundle,android.support.v4.app.LoaderManager.LoaderCallbacks)全部錯誤' 不能是應用於'(int,null,group15.cop4331project.MyReportsFragment)

我已閱讀關於支持庫的所有答案,但事實並非如此。我試圖用SQLite數據庫中的列表來填充這個片段。我真的很想弄清楚爲什麼這不起作用。此外,我認爲我正確使用OnCreateView和OnActivityCreated,但我不確定。

我進口

import android.content.ContentUris; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.ListView; 

我的代碼

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

    //adapter for the ListView 
    MyCursorAdapter mCursorAdapter; 

    View rootView; 

    public MyReportsFragment() { 
     // Required empty public constructor 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     rootView = inflater.inflate(R.layout.report_list, container, false); 

     return rootView; 
    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 

     // Find the listview which will be populated with the data 
     ListView listView = (ListView) rootView.findViewById(R.id.list); 

     // Setup an Adapter to create a list item for each row of data in the Cursor. 
     mCursorAdapter = new ReportCursorAdapter(getActivity(), null); 
     listView.setAdapter(mCursorAdapter); 

     // Setup the item click listener 
     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Override 
      public void onItemClick(AdapterView < ?>adapterView, View view, int position, long id) { 
       Intent intent = new Intent(getActivity(), EditReportActivity.class); 

       Uri currentUri = ContentUris.withAppendedId(ReportEntry.CONTENT_URI, id); 

       // Set the URI on the data field of the intent 
       intent.setData(currentUri); 

       startActivity(intent); 
      } 
     }); 

     // Kick off the loader 
     getLoaderManager().initLoader(REPORT_LOADER, null, this); 
     //getActivity().getSupportLoaderManager().initLoader(REPORT_LOADER, null, this); 
    } 
} 

回答

0

initLoader應onActivityCreated被稱爲所以這部分是確定的。

我遇到了一個類似的問題,solotion與支持v4 lib有關。更改此import語句: import android.support.v4.app.Fragment; 到: import android.app.Fragment; 及用途:import android.app.LoaderManager; (請確保您使用的不是支持V4項目中的任何地方)

這是基於你貼了,如果你能發佈的所有代碼可幫助

的希望imort聲明這有助於

+0

我想,複製和粘貼幾個import語句(這是我從其他的答案一樣)因爲某些原因沒有工作,但這似乎這樣的伎倆。非常感謝你。 – bous006

+0

因此,不幸的是,如果我刪除了支持v4庫,那麼我無法在選項卡之間實施滑動。我不認爲你知道我能做到的兩種方法,一種是我可以在上面做什麼? – bous006

+0

其實我也有這個問題:)如果你使用帶有fragmentPagerAdapter的viewPager,你可以在你的gradle文件中使用:compile'c​​om.android.support:support-v13:25.1.1'導入support.v13庫。 v13支持庫包含一個可以處理android.app.Fragments的FragmentPagerAdapter類。祝你好運J – nir

相關問題