android searchframework
DESCRIPTION
Lightning Talk apresentado no AndroidRec 2012TRANSCRIPT
AndroidSearchFrameworkIntegrando seu app com a busca nativa do Android
João Paulo Magalhães@JPMagalhaes_
@JPMagalhaes - AndroidRec 2012
2
Sobre o quê mesmo vamos falar hoje?
28/04/2012
@JPMagalhaes - AndroidRec 2012
3
Agenda Android Search Framework Implementando a busca em seu app Search Dialog SearchWidget Auto-complete/Sugestões customizadas
Quick Search Box Observações
28/04/2012
@JPMagalhaes - AndroidRec 2012
4
Android Search Framework Busca é uma característica essencial
do Android O quê e onde buscar?
Tudo que interessar ao usuário[?!] Conteúdo pode estar armazenado
localmente ou na internet Objetivo:
Criar uma experiência de busca consistente
28/04/2012
@JPMagalhaes - AndroidRec 2012
5
Android Search Framework Ajuda-nos na implementação da busca
Exibindo a view de input Entregando queries para seu app Exibindo os resultados
Não nos ajuda na busca! Nem com nossos dados
Formas de interação Search Dialog SearchView Quick Search Box
28/04/2012
@JPMagalhaes - AndroidRec 2012
6
Implementando a busca em seu app [1/4] Nós precisamos:
searchable.xml SearchActivity Search UI
O processo a partir do SearchButton.onCLick() A interface desejada é criada A cada letra inserida
Uma consulta ao ContentProvider pode ser feita -> Auto-complete/Sugestões Customizadas
OnEnter() Intent de busca é criado pelo sistema Query é inserida SearchActivity é iniciada
28/04/2012
@JPMagalhaes - AndroidRec 2012
7
[2/4] Configurando sua Busca res/xml/searchable.xml
android:label é o único atributo exigido para buscas locais Não é visível Deve ser o nome do app
Neste ponto, nosso app estará visível para buscas Settings -> Searchable items Na verdade, não! android:includeInGlobalSearch="true"
Aceita vários outros atributos Adicionar de acordo com as features desejadas
28/04/2012
@JPMagalhaes - AndroidRec 2012
8
[3/4] Criando uma SearchableActivity Activity que realiza a busca baseada em
uma query e apresenta os resultados
28/04/2012
@JPMagalhaes - AndroidRec 2012
9
[4/4] Nunca esqueça do Manifest.xml!
28/04/2012
@JPMagalhaes - AndroidRec 2012
10
Search Dialog Caixa de busca flutuante
Aparece no topo da tela Botão de busca onSearchRequested()
Nada disso funciona até a busca seja habilitada Em uma atividade específica Para todas as atividades do app
28/04/2012
@JPMagalhaes - AndroidRec 2012
11
[1/2] SearchView widget Android 3.0+ Normalmente colocada na ActionBar Mesmas funcionalidades do Search Dialog
Com um pouco mais de trabalho… Inserir o botão de busca no ActionBar/Menu
res/menu/search_menu.xml
28/04/2012
@JPMagalhaes - AndroidRec 2012
12
[2/2] SearchView widget
28/04/2012
Configurar o SearchView Linkar o componente com nossa
configuração de busca
@JPMagalhaes - AndroidRec 2012
13
Auto-complete/Sugestões customizadas
28/04/2012
Para incluir na Quick Seach Box: android:includeInGlobalSearch="true” Settings -> Searchable items
Ativar a busca em seu app
@JPMagalhaes - AndroidRec 2012
14
[1/3] ObservaçõesContent Provider Igual a qualquer outro Content Provider Deve implementar pelo menos a função
query() Retornando as sugestões em um Cursor
Cada sugestão (linha) retornada deve ter colunas específicas Assim o sistema pode exibir os valores Quais colunas? NEXT!
28/04/2012
@JPMagalhaes - AndroidRec 2012
15
[2/3] ObservaçõesBanco de dados Em geral, uma tabela exclusiva para sugestões
Ou re-utilize uma de suas tabelas Colunas específicas obrigatórias
BaseColumns._ID SearchManager.SUGGEST_COLUMN_TEXT_1 SearchManager.SUGGEST_COLUMN_TEXT_2 …
28/04/2012
@JPMagalhaes - AndroidRec 2012
16
[3/3] ObservaçõesInstanciando a SearchView Implementar OnQueryTextListener
onQueryTextChange(String arg0) onQueryTextSubmit(String query)
searchView.setOnQueryTextListener(this);
28/04/2012
@JPMagalhaes - AndroidRec 2012
17
Referências Android Developers - Search
http://developer.android.com/guide/topics/search/index.html
Apresentação
Código fonte – github
28/04/2012
AndroidSearchFrameworkIntegrando seu app com a busca nativa do Android
João Paulo Magalhaes@JPMagalhaes_