Initializing a Loader in an Activity

后端 未结 4 2019
北荒
北荒 2020-12-03 02:49

I am currently trying to learn how to use Loaders and am having trouble starting a Loader in my activity.

import android.support.v4.app.LoaderManager;
import         


        
相关标签:
4条回答
  • 2020-12-03 03:21

    The third parameter for getLoaderManager().initLoader(0, null, this); should be a instance that implement interface LoaderManager.LoaderCallbacks So you should implement the interface first.

    0 讨论(0)
  • 2020-12-03 03:39

    For AppCompatActivity use getSupportLoaderManager().initLoader(0,null,this); for initializing the loader.

    0 讨论(0)
  • 2020-12-03 03:40

    As I can see you use supportV4 library. So to implement Loader you should do some things:

    1. extend your activity from FragmentActivity class
    2. Use getSupportLoaderManager method instead of getLoaderManager

    here is sample code:

    import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;
    import android.support.v4.app.LoaderManager;
    import android.support.v4.content.Loader;
    import android.widget.Toast;
    
    public class MyActivity extends FragmentActivity implements LoaderManager.LoaderCallbacks<Object> {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        getSupportLoaderManager().initLoader(0, null, this);
    }
    
    @Override
    public Loader<Object> onCreateLoader(int i, Bundle bundle){
        return null; // TODO
    }
    
    @Override
    public void onLoadFinished(Loader loader, Object o) {
        Toast.makeText(this, "onLoadFinished", Toast.LENGTH_SHORT).show();
    }
    
    @Override
    public void onLoaderReset(Loader loader)    {
        Toast.makeText(this, "onLoaderReset", Toast.LENGTH_SHORT).show();
    }
    }
    
    0 讨论(0)
  • 2020-12-03 03:41

    When using loaders with fragments use:

    getLoaderManager().initLoader(0,null,this);
    

    And when using loaders with Activity use:

    getSupportLoaderManager().initLoader(0,null,this);
    
    0 讨论(0)
提交回复
热议问题