Como posso atualizar o cursor de um CursorLoader?

Então eu tenho meuMainDisplayActivity que implementa tantoActivity eLoaderManager.LoaderCallbacks<Cursor>. Aqui eu tenho umListView, que preencho com as informações da Agenda que recebo do meu banco de dados usando um ContentProvider. eu tambem tenho umGridView que é um calendário. Eu tenho que configurar quando clicar em uma célula, que a agenda é atualizada com o dia clicado. Meu problema é que ao reutilizar o Loader eu crieionCreate() dentro do setOnItemClickListener (), ele não atualiza as informações com o novo cursor que estou criando. Eu posso apenas criar um novo Loader com outro ID, e ele funciona uma vez, mas quando eu clico em outro dia, ele pára de atualizar. O problema está no cursor. Como posso atualizar um cursor de um carregador para não ter que continuar criando um novo carregador? Desde já, obrigado!

Chamada inicial para criar o Loader em onCreate () em MyMainDisplayActivity classe:

makeProviderBundle(new String[] {"_id, event_name, start_date, start_time, end_date, end_time, location"},
            "date(?) >= start_date and date(?) <= end_date", new String[]{getChosenDate(), getChosenDate()}, null);
    getLoaderManager().initLoader(0, myBundle, MainDisplayActivity.this);

    list.setAdapter(agendaAdapter);

Estes são os métodos substituídos deLoaderCallbacks<Cursor>

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    Uri baseUri = SmartCalProvider.CONTENT_URI;
    return new CursorLoader(this, baseUri, args.getStringArray("projection"), 
            args.getString("selection"), args.getStringArray("selectionArgs"), args.getBoolean("sortOrder") ? args.getString("sortOrder") : null );
}



@Override
public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
    agendaAdapter.swapCursor(arg1);
}



@Override
public void onLoaderReset(Loader<Cursor> arg0) {
    //Not really sure how this works. Maybe I need to fix this here?
    agendaAdapter.swapCursor(null);

}

public void makeProviderBundle(String[] projection, String selection, String[] selectionArgs, String sortOrder){
    /*this is a convenience method to pass it arguments 
     * to pass into myBundle which in turn is passed 
     * into the Cursor loader to query the smartcal.db*/
    myBundle = new Bundle();
    myBundle.putStringArray("projection", projection);
    myBundle.putString("selection", selection);
    myBundle.putStringArray("selectionArgs", selectionArgs);
    if(sortOrder != null) myBundle.putString("sortOrder", sortOrder);
}

Qualquer código adicional necessário, por favor, não hesite em perguntar. Obrigado novamente por qualquer ajuda!

questionAnswers(1)

yourAnswerToTheQuestion