Re: AutoCompleteTextView com adapter customizado api retrofit

25 views
Skip to first unread message
Message has been deleted

nglauber

unread,
Apr 27, 2018, 10:57:49 PM4/27/18
to Livro Dominando o Android
Oi Adriano,

Desculpa, mas tava muito ocupado essa semana e não consegui responder. Você já conseguiu resolver?

A lógica correta seria, à medida que você for digitando, fazer uma busca no servidor e ele já retornar os registros filtrados.
Mas se essa sua chamada do servidor já retorna todos os registros, me parece ok.

Compartilha esse código que assim que puder dou uma olhada.

4br4ç05,
nglauber

On Tuesday, April 24, 2018 at 2:26:16 PM UTC-3, Adriano Braga wrote:
Olá pessoal,

Podem me orientar como fica o Adapter(PacienteAutoCompleteAdapter) para retornar uma lista filtrada em uma layout customizado(item_autocomplete_paciente), onde o usuário irá selecionar no dropdown o item desejado?
Tentei adaptar o exemplo do livro mas estou perdido sem conseguir avançar!

OBS: o retorno da API está ok, eu consigo printar no log com Log.e("TAMANHO DA LIST: ", "TAMANHO: "+ listPaciente.size());

Call<List<Paciente>> pacienteListCall = pacienteService.getPacientes(token);
pacienteListCall.enqueue(new Callback<List<Paciente>>() {

@Override
public void onResponse(Call<List<Paciente>> call, Response<List<Paciente>> response) {
if (response.isSuccessful()) {
listPaciente.addAll(response.body());

PacienteAutoCompleteAdapter adapter;
adapter = new PacienteAutoCompleteAdapter(this, R.layout.item_autocomplete_paciente, listPaciente);
ac_paciente.setAdapter(adapter);
}
}

@Override
public void onFailure(Call<List<Paciente>> call, Throwable t) {
Log.e("ADRIANO", "Erro" + t.getMessage());
}
});
Message has been deleted

nglauber

unread,
May 4, 2018, 9:35:59 PM5/4/18
to Livro Dominando o Android
Oi Adriano,

Infelizmente agora não posso fazer a revisão do seu código... Estou muito corrido esse mês. 
Mas respondendo sua dúvida: "à medida que você for digitando, fazer uma busca no servidor e ele já retornar os registros filtrados."
Na página 163 eu mostro como fazer um filtro personalizado para o AutoCompleteTextView utilizando a classe MeuFiltro.
O  método performFiltering é o local onde a filtragem deve ser realizada. Então, nesse momento você deve fazer a requisição para o seu webservice de modo que ele retorne as informações que você deseja. Perceba que o parâmetro desse método é um CharSequence que representa o texto digitado no AutoCompleteTextView. Note que esse método retorna uma instância de FilterResults, que na sua propriedade values deve receber a sua lista (carregada do servidor).
Os dados são enviados para serem exibidos no "drop down" do AutoCompleteTextView no método publishResults.

Ficou mais claro? Qualquer dúvida, me fala.
Reply all
Reply to author
Forward
0 new messages