Inicialización de un cargador en una actividad

Actualmente estoy tratando de aprender cómo usar los cargadores y tengo problemas para iniciar un cargador en mi actividad.

import android.support.v4.app.LoaderManager; import android.support.v4.content.Loader; public class ASwitchActivity extends Activity implements LoaderManager.LoaderCallbacks<SampleLoader.SampleLoaderResult> { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); getLoaderManager().initLoader(0, null, this); } public Loader<SampleLoader.SampleLoaderResult> onCreateLoader(int id, Bundle args) { return new SampleLoader(getBaseContext(), account, "dog"); } public void onLoadFinished(Loader<SampleLoader.SampleLoaderResult> loader, SampleLoader.SampleLoaderResult out) { TextView t=(TextView)findViewById(R.id.testTV); t.setText("yay"); } public void onLoaderReset(Loader<SampleLoader.SampleLoaderResult> loader){ } } 

Sin embargo Eclipse da un error declarando:

El método initLoader (int, Bundle, LoaderManager.LoaderCallbacks) en el tipo LoaderManager no es aplicable para los argumentos (int, null, ActivitySwitchActivity)

¿Alguien puede ayudar con dónde me equivoco?

Como puedo ver que utiliza la biblioteca supportV4. Así que para implementar Loader debes hacer algunas cosas:

  1. Extienda su actividad de la clase FragmentActivity
  2. Use el método getSupportLoaderManager en lugar de getLoaderManager

Aquí está el código de la muestra:

 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(); } } 

Cuando utilice cargadores con fragments utilice:

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

Y al usar cargadores con uso de la Activity :

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

El tercer parámetro para getLoaderManager().initLoader(0, null, this); Debe ser una instancia que implementa la interfaz LoaderManager.LoaderCallbacks Así que debe implementar la interfaz primero.

Para AppCompatActivity use getSupportLoaderManager().initLoader(0,null,this); Para inicializar el cargador.

  • Poblar listview de ListAdapter o SimpleCursorAdapter
  • ExpandableListFragment con LoaderManager para el paquete de compatibilidad
  • Error al utilizar CursorLoader para cargar datos de ContentProvider
  • ¿Cómo insertar correctamente valores en la base de datos SQLite utilizando el método insert () de ContentProvider mediante un CursorLoader?
  • Loader no se inicia después de llamar a initLoader ()?
  • AsyncTaskLoader no llama a onLoadFinished a menos que devuelva un nuevo objeto en loadInBackground
  • Filtro ListView con CursorLoader y CursorAdapter personalizado
  • Problemas con las devoluciones de llamada personalizadas de AsyncTaskLoader
  • ¿Qué CursorAdapter tengo que usar?
  • El antiguo constructor de SimpleCursorAdapter desaprobó .. realmente?
  • Refrescar una vista dentro de un fragmento
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.