sociales redes mediatica informacion android autocomplete contacts android-edittext

redes - Texto de edición de Android: elija el número de teléfono del contacto(con finalización automática)



informacion mediatica (2)

¿Has consultado el ejemplo de Autocompletar de Android en: http://developer.android.com/resources/tutorials/views/hello-autocomplete.html

tal vez pueda modificar este ejemplo para agregar su lista de contactos.

¿Hay alguna manera de poner un elemento EditText en el que podría elegir el número de teléfono del contacto de mi lista de contactos. Al igual que en la aplicación genérica de Android sms. (¡Completar automáticamente al escribir el número de teléfono o el nombre del contacto!).


La respuesta de Hakan es buena, pero está relacionada con el uso del Cursor. En general, puede escribir su propio adaptador, por ejemplo, extendiendo ArrayAdapter. En mi aplicación, el Adaptador tuvo que hacer un montón de "cosas extrañas" como buscar en db, luego volver a filtrar los Cursores, agregar otros resultados, cambiar otros ... Hice algo como esto:

public class MyAdapter extends ArrayAdapter { private List<String> mObjects; //the "strange Strings" private MyHelper dbHelper; // an helper to make query private MyFilter mFilter; // my personal filter: this is very important!! private final Object mLock=new Object(); //functions very similar to the ArrayAdapter implementation @Override public int getCount() { return mObjects.size(); } @Override public Filter getFilter() { if (mFilter==null) { mFilter=new TeamFilter(); } return mFilter; } @Override public String getItem(int position) { return mObjects.get(position); } @Override public int getPosition(String item) { return mObjects.indexOf(item); } //the trick is here! private class MyFilter extends Filter { //"constraint" is the string written by the user! @Override protected FilterResults performFiltering(CharSequence constraint) { FilterResults results=new FilterResults(); //no constraint => nothing to return if ((constraint==null)||(constraint.length()==0)) { synchronized (mLock) { ArrayList<String> list=new ArrayList<String>(); results.values=list; results.count=list.size(); } } else { String constr=constraint.toString(); mObjects= // do what you want to do to populate you suggestion - list //( I call the db and change some values) results.values=mObjects; results.count=mObjects.size(); } return results; } @Override protected void publishResults(CharSequence constraint, FilterResults results) { if (results.count>0) { notifyDataSetChanged(); } else { notifyDataSetInvalidated(); } } } }