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:
- ¿Cuáles son los beneficios de CursorLoaders?
- Android: CursorLoader falla en Fragmento no superior
- ¿Debe usar los cargadores para acceder a servicios web?
- ¿Está bien tener una instancia de SQLiteOpenHelper compartida por todas las actividades en una aplicación de Android?
- ¿Por qué nunca se llama a mi OnLocationChanged ()?
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?
- Diferencia entre `initLoader` y` restartLoader` en `LoaderManager`
- NullPointerException en el método restartLoader de LoaderManager
- ¿Modelo para cargadores múltiples con LoaderManager?
- Android getContentResolver (). NotifyChange () no reinicia mi cargador
- Cómo utilizar dos cursores y CursorJoiner en LoaderManager en android
- Instancia global de base de datos
- ¿Qué hace LoaderManager?
- ¿Cómo CursorLoader actualiza automáticamente la vista incluso si la aplicación está inactiva?
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?