Loaderの使用について

2236 ワード

LoaderCallbackインタフェースを実装するクラスが書かれていて、使用中に以下のエラーが発生した場合、おめでとうございます.私と同じ問題に遭遇しました.それは、実装クラスにv 4パケットが導入され、クラスオブジェクトを使用するクラスでloadermanagerが取得されると、v 4のパケットではなくappの下のパケットが導入されます.解決策はもちろんパッケージが一致し、v 4の下に導入された場合、ActivityはFragmentActivityを継承し、getSupportLoaderManager()を呼び出す必要があります.
java.lang.ClassCastException: cn.xxxxx.PhoneImage cannot be cast to android.app.LoaderManager$LoaderCallbacks
 
もちろん、質問の答えも表示されます.http://www.dewen.io/q/3609
あなたのコードを見て、あなたはsupportV 4ライブラリを使っています.FragmentActivityライブラリを導入する必要があります.あなたのActivityはFragmentActivityを継承します.また、getSupportLoaderManagerメソッドでgetLoaderManagerを置き換えます.例をあげます.

  
  
  
  
  1. import android.os.Bundle;
  2. import android.support.v4.app.FragmentActivity;
  3. import android.support.v4.app.LoaderManager;
  4. import android.support.v4.content.Loader;
  5. import android.widget.Toast;

  6. public class MyActivity extends FragmentActivity implements LoaderManager.LoaderCallbacks<Object> {
  7. public void onCreate(Bundle savedInstanceState) {
  8.     super.onCreate(savedInstanceState);
  9.     setContentView(R.layout.main);
  10.     getSupportLoaderManager().initLoader(0, null, this);
  11. }

  12. public Loader<Object> onCreateLoader(int i, Bundle bundle){
  13.     return null; // TODO
  14. }

  15. public void onLoadFinished(Loader loader, Object o) {
  16.     Toast.makeText(this, "onLoadFinished", Toast.LENGTH_SHORT).show();
  17. }

  18. public void onLoaderReset(Loader loader)    {
  19.     Toast.makeText(this, "onLoaderReset", Toast.LENGTH_SHORT).show();
  20. }
  21. }