Pergunta

Tento pesquisar as perguntas para ver se há algum tópico semelhante ao meu problema, mas até agora não encontrei nenhum. Aqui está o meu problema: Eu tenho uma lista de produtos que contém aproximadamente 10.000 itens armazenados em um banco de dados SQLite. Em meu aplicativo, preciso pesquisar qualquer item desta lista. Tenho algumas opções:

  • Use o autoCompleteTextView, com todos os produtos pré-carregados, e conforme eu digito o nome do produto, a lista irá sugerir o produto, portanto, eu só preciso selecionar a partir da sugestão. Esta é a maneira mais simples, mas acho que 10.000 itens (ou até mais no futuro) seriam muito pesados ​​para carregar
  • Conforme eu digito qualquer caractere e clico em pesquisar, o aplicativo fará uma seleção de todos os produtos do banco de dados com o caractere como filtro. O conjunto de resultados é então alimentado para algum modo de exibição de lista para que eu possa escolher qualquer item. Essa abordagem economizaria memória, pois o aplicativo não carregará todos os itens na memória, mas apenas os itens que contêm os caracteres de filtragem.

Existe alguma maneira melhor de fazer isso? Obrigado

Foi útil?

Solução

Sua segunda opção é a melhor maneira.É semelhante a como você obtém uma lista de resultados de pesquisa recomendados enquanto digita sua consulta.Para você, supondo que está usando asynctask para consultar seu banco de dados, você pode ter uma mensagem de carregamento adequada sinalizada por onProgressUpdate

Outras dicas

Você pode categorizar os itens?Assim, você pode usar o botão giratório para selecionar a categoria e usar AutoCompleteTextView para digitar e selecionar itens.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top