package com.merybere.app.contentprovidercalendar;
import android.net.Uri;
import android.os.Bundle;
import android.provider.CalendarContract;
import android.app.ListActivity;
import android.app.LoaderManager.LoaderCallbacks;
import android.content.Context;
import android.content.CursorLoader;
import android.content.Loader;
import android.database.Cursor;
import android.view.Menu;
import android.widget.SimpleCursorAdapter;
public class MainActivity extends ListActivity implements LoaderCallbacks<Cursor> {
private SimpleCursorAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int layout = android.R.layout.simple_list_item_2;
Cursor cursor = null; // En blanco para que se encargue el loader de cargarlo
String[] from = new String[] { CalendarContract.Events.TITLE,
CalendarContract.Events.DTSTART };
int[] to = new int[]{ android.R.id.text1, android.R.id.text2 };
int flags = 0;
adapter = new SimpleCursorAdapter(this, layout, cursor, from, to, flags );
// Indicar que hay que usar este adaptador
setListAdapter(adapter);
// Lanzar el loader manager
// - Id del loader, por si hay m�s de uno
// - Par�metros
// - Loader callbacks
getLoaderManager().initLoader(0, null, this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
// Un loader se encarga de abrir el helper y cargar el cursor
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
Context context = this;
Uri uri = CalendarContract.Events.CONTENT_URI;
String[] projection = new String[] {
CalendarContract.Events._ID,
CalendarContract.Events.TITLE,
CalendarContract.Events.DTSTART
};
String selection = null;
String[] selectionArgs = null;
String shortOrder = CalendarContract.Events.DTSTART + " DESC";
return new CursorLoader(context, uri, projection, selection, selectionArgs, shortOrder);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
// swapCursor te devuelve el antiguo cursor por si se quiere utilizar
adapter.swapCursor(cursor);
}
@Override
public void onLoaderReset(Loader<Cursor> arg0) {
// TODO Auto-generated method stub
}
}