



























Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Neste documento, é apresentado um código de um contentprovider em java que armazena e gerencia eventos em um banco de dados sqlite. O contentprovider fornece uris para consultas, inserções, atualizações e exclusões de eventos. O código inclui classes para a definição de constantes, a implementação do contentprovider e a manipulação de eventos.
Tipologia: Notas de estudo
1 / 35
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Programação para a Plataforma Android – Aula 12
import android.net.Uri; import android.provider.BaseColumns; public interface Constants extends BaseColumns { final String TABLE_NAME = "events"; final String AUTHORITY = "com.aula10"; final Uri CONTENT_URI = Uri.parse("content://”
private sta@c final int EVENTS = 1; private sta@c final int EVENTS_ID = 2; private EventsData events; private UriMatcher uriMatcher; @Override public boolean onCreate() { uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); uriMatcher.addURI(AUTHORITY, "events", EVENTS); uriMatcher.addURI(AUTHORITY, "events/#", EVENTS_ID); events = new EventsData(getContext()); return true; } EventsProvider.java O que seria um UriMatcher ? E^ essa^ classe EventsData ?
@Override public Cursor query(Uri uri, String[] projec@on, String selec@on, String[] selec@onArgs, String orderBy) { if (uriMatcher.match(uri) == EVENTS_ID) { long id = Long.parseLong(uri.getPathSegments().get(1)); selec@on = appendRowId(selec@on, id); } SQLiteDatabase db = events.getReadableDatabase(); Cursor cursor = db.query(TABLE_NAME, projec@on, selec@on, selec@onArgs, null, null, orderBy); cursor.setNo@fica@onUri(getContext().getContentResolver(), uri); return cursor; } EventsProvider.java
@Override public Uri insert(Uri uri, ContentValues values) { SQLiteDatabase db = events.getWritableDatabase(); if (uriMatcher.match(uri) != EVENTS) { throw new IllegalArgumentExcepNon ("Unknown URI " + uri); } long id = db.insertOrThrow(TABLE_NAME, null, values); Uri newUri = ContentUris.withAppendedId(CONTENT_URI, id); getContext().getContentResolver().noNfyChange(newUri, null); return newUri; } EventsProvider.java Por que disparamos essa exceção ? Qual o propósito dessa linha?
@Override public int delete(Uri uri, String selec@on, String[] selec@onArgs) { SQLiteDatabase db = events.getWritableDatabase(); int count; switch (uriMatcher.match(uri)) { case EVENTS: count = db.delete(TABLE_NAME, selec@on, selec@onArgs); break; case EVENTS_ID: long id = Long.parseLong(uri.getPathSegments().get(1)); count = db.delete(TABLE_NAME, appendRowId(selec@on, id), selec@onArgs); break; default: throw new IllegalArgumentExcep@on("Unknown URI " + uri); } getContext().getContentResolver().no@fyChange(uri, null); return count; } EventsProvider.java
@Override public int update(Uri uri, ContentValues values, String selec@on, String[] selec@onArgs) { SQLiteDatabase db = events.getWritableDatabase(); int count; switch (uriMatcher.match(uri)) { case EVENTS: count = db.update(TABLE_NAME, values, selec@on, selec@onArgs); break; case EVENTS_ID: long id = Long.parseLong(uri.getPathSegments().get(1)); count = db.update(TABLE_NAME, values, appendRowId (selec@on, id), selec@onArgs); break; default: throw new IllegalArgumentExcep@on("Unknown URI " + uri); } getContext().getContentResolver().no@fyChange(uri, null); return count; } EventsProvider.java Mas,^ o^ que ele faz^ mesmo ? private String appendRowId(String selec@on, long id) { return _ID + "=" + id