SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Prática recomendada para acoplamento fraco entre dados e interface do usuário no Android - Adapter, Filter, CursorLoader e ContentProvider


No Android, o Adapter atua como uma ponte entre a visão e o modelo de dados. Você pode exibir o n TextViews em um ListView ou um GridView , e quando o usuário adiciona ou exclui uma nota, o banco de dados local ou do servidor é atualizado primeiro. Após a conclusão da chamada do serviço da Web e/ou da atualização do banco de dados local, os novos dados são adicionados ao Adapter subjacente . A View é atualizado chamando adapter.notifyDataSetChanged() . Esta seria a maneira de fazê-lo.

Abordagens:
  • Se estiver atualizando o SQLite local banco de dados, você pode considerar usar um CursorAdpater para armazenar os dados da View , pois mapeia diretamente as entradas no banco de dados local para o View .
  • Se estiver usando um ContentProvider , é ainda possível combinar um CursorAdapter com um LoaderManager e umCursorLoader :eles se conectam à Activity / Fragment ciclo de vida e monitorar o ContentProvider subjacente para alterações publicadas automaticamente no View em um tópico separado.
  • Também é possível usar umFilter em conjunto com o Adapter para definir um mecanismo dinâmico que classifica as entradas de dados em tempo real. A filtragem é realizada pelo Filter em um thread separado, conforme uma consulta inserida pelo usuário, possivelmente em umAutoCompleteTextView .

Referências:
  • Veja Recuperando uma lista de contatos tutorial. O exemplo aqui recupera um conjunto de contatos do ContentProvider de contatos com base em uma pesquisa dinâmica e alfabética pelo usuário. Ele faz uso de CursorAdapter , CursorLoader e LoaderManager para monitorar e atualizar os dados, e exibe os resultados da pesquisa em um ListView .
  • Veja também a Pesquisa em tempo real do Android (Instant) com classe de filtro exemplo, que mostra como um Filter deve ser usado.
  • Android AutoCompleteTextView com filtro de adaptador personalizado .
  • Android AutocompleteTextView usando ArrayAdapter e Filter .