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:
- Loader no se inicia después de llamar a initLoader ()?
- ¿Cómo pasar de managedQuery a LoaderManager / CursorLoader?
- Confundido sobre CursorLoaders y usarlos con un SQLiteOpenHelper personalizado
- Utilizar CursorLoader para consultar la base de datos SQLite y rellenar AutoCompleteTextView
- Diferencia entre restartLoader y onContentChanged
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?
- Global Loader (LoaderManager) para su reutilización en múltiples Actividades / Fragmentos
- Android: CursorLoader, LoaderManager, SQLite
- Explique AsyncTaskLoader
- ExpandableListFragment con LoaderManager para el paquete de compatibilidad
- Loader y LoaderManager - ¿Cómo determinar si un cargador actual está activo y en ejecución?
- Refrescar una vista dentro de un fragmento
- Android - CursorLoader y SQLite sin proveedor de contenido
- El antiguo constructor de SimpleCursorAdapter desaprobó .. realmente?
Como puedo ver que utiliza la biblioteca supportV4. Así que para implementar Loader debes hacer algunas cosas:
- Extienda su actividad de la clase FragmentActivity
- 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.
- ¿Cómo mostrar una pantalla de bienvenida de una vez?
- ¿Por qué AlertDialog.Builder (Context context) sólo acepta Actividad como parámetro?