Saltar para conteúdo


Foto
- - - - -

Adicionar "adapter" de contactos a AutoCompleteTextView


  • Por favor inicie sessão para responder
2 respostas a este tópico

#1 rah.santos

rah.santos

    Novato

  • Membros
  • Pip
  • 7 mensagens

Mensagem publicada 11 August 2011 - 16:03

Boas, gostava de adicionar um "adapter" a um AutoCompleteTextView. Este adapter consistia na lista de contactos do android.Já consegui fazer isto, em que aparecem os contactos todos desordenados, mas no final é retornado um código marado.Penso que não estou a ir pelo caminho certo. [code type=javascript] final Cursor c = managedQuery(People.CONTENT_URI, null, null, null, null); String[] from = new String[] {People.NAME}; int[] to = new int[] { R.id.text_view }; SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.contactlist,c,from,to); AutoCompleteTextView number = (AutoCompleteTextView) findViewById(R.id.number); number.setAdapter(adapter); [/code]O que pretendia era fazer basicamente o mesmo que faz o AutoComplete da EditBox da aplicação das mensagens. (ver anexo)[attachment=3901]device.png[/attachment]Alguém sabe ou pode ajudar-me a fazer isto?Obrigado :)

#2 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 12 August 2011 - 16:32

Define "Código Marado" :)Assim de repente parece-me bem (embora nunca tenha usado). O não aparecer ordenado provavelmente tem a ver com um daqueles "nulls" que passas à ManagedQuery

#3 rah.santos

rah.santos

    Novato

  • Membros
  • Pip
  • 7 mensagens

Mensagem publicada 17 August 2011 - 22:19

Depois de umas pesquisas na net, resolvi implementar um CustomContactListAdapter e estende-lo de SimpleListAdapter.O problema ficou resolvido, mas agora o que acontece é que a AutoComplete só devolve o contacto se este estiver como predefinido na lista de contactos, caso contrário devolve null.O método que faz retornar o número para a AutoCompleteTextView é o seguinte:
@Override	public String convertToString(Cursor c) {				String number = c.getString(c.getColumnIndexOrThrow(People.NUMBER));		if (number == null) {                  return "";            }		return number;	}
Será possível aceder números mesmo se estes não estiverem como predefinidos?Fica ai o link para download do projecto, para quem estiver interessado.SourceCode do ProjectoCumps.