Como adicionar sugestões dinamicamente ao autocompletetextview com a preservação do status do caractere

Descrição do Problema:

Estou enfrentando algum problema com o AutoCompleteTextView, no qual tenho que mostrar sugestões após cada pressionamento de tecla. A questão é que a lista de sugestões é dinâmica, como o recurso de sugestão do google. Isso significa que as novas sugestões devem ser adicionadas à medida que o usuário continuar digitando e todas as sugestões antigas correspondentes devem ser exibidas.

Por exemplo

Eu escrevo "te" e, em seguida, ele deve exibir sugestões anteriores, como "test1" e "test2", e as novas sugestões que receberei da API da Web. Suponha que a web api me dê a palavra "chá" e "tensão".

Agora o AutoCompleteTextView terá "te" como string com todas as quatro sugestões abaixo.

Isso é exatamente o que estou procurando.

parece simples, mas está mostrando um comportamento estranho.

Estou usando a instância de classe ArrayAdapter padrão da qual estou declarando globalmente.

arrayAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line,suggestions);
word.setAdapter(arrayAdapter);

sugestões é ArrayList.

Ao obter um novo resultado do WebApi eu simplesmente chamo

arrayAdapter.notifyDataSetChanged();

para atualizar o observador de dados e as visualizações anexadas com isso (no nosso caso, AutoCompleteListView).

Mas fecha sugestões.

Quando eu não usonotifyDataSetChanged(); está mostrando todas as sugestões, independentemente dos caracteres que eu tenha digitado.

Eu tentei com filtro personalizado, como muitos sugeriram, mas nenhum deles é útil como eu não poderia usar notifyDataSetChanged ().

Estou postando uma imagem para evitar confusões.

Eu tenho uma confusão que porquenotifyDataSetChanged(); não está funcionando. Eu não usei nenhuma outra referência de lista com a mesma instância de arrayAdapter. Eu realmente duvido que seja um problema de referência.

questionAnswers(2)

yourAnswerToTheQuestion