2017-03-04 9 views
1

エラーinitLoaderは第3引数として "this"を使用しません。

initLoader(int型、android.os.Bundle、android.support.v4.app.LoaderManager.LoaderCallbacks)android.support.v4.app.LoaderManager」の '下の全エラー' することはできません'(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

部分がOKであるようにinitLoaderはonActivityCreatedに呼び出されなければなりません。

同様の問題が発生しましたが、ソルーションはv4 libのサポートに関連していました。 import android.app.Fragment; と使用: import android.support.v4.app.Fragment; へ:このimport文を変更import android.app.LoaderManager;

これはあなたがすべての投稿できる場合は、投稿のコードに基づいています(あなたのプロジェクトのどこにでもサポートV4を使用していないことを確認してください)

希望役に立つことができimort文は、この

+0

私はそのコピーといくつかの理由で動作しませんでした(私は他の回答からやった)貼り付け、いくつかのインポート文を推測することができますが、これはトリックを行うようです。どうもありがとうございました。 – bous006

+0

残念ながら、サポートv4ライブラリを削除すると、タブ間でスワイプを実装できません。スワイプと私が上で試みていることの両方を行うことができる方法をあなたが知っているとは思いませんか? – bous006

+0

実際に私はこの問題も抱えていました:) fragmentPagerAdapterでviewPagerを使用している場合、support.v13ライブラリをインポートすることができます:compile 'com.android.support:support-v13:25.1.1' 。 v13サポートライブラリには、android.app.Fragmentsを処理できるFragmentPagerAdapterクラスが含まれています。幸運J – nir

関連する問題