2010-08-22 11 views
6

Me gustaría saber si podemos llamar continuamente a algún servicio para obtener resultados y mostrarlos en la lista Autocompletar.Actualizar dinámicamente cuadro de autocompletar en Android?

Tengo una pantalla con el cuadro de texto y cuando el usuario comienza a ingresar en ese cuadro de texto, la autocompleta debe llenarse con los datos. Los datos no se codificarán en forma rígida y se buscarán a través de la conexión http. Creo que necesito llamar a http en el método onTextChanged de Edittext, pero esa es la solución perfecta.

Además, este tipo de implementación debe realizarse en la aplicación móvil. Desde entonces, esta característica está basada en la web. ¿Se puede hacer esto también en la aplicación móvil?

¿Esto es factible?

+0

Duplicado http://stackoverflow.com/questions/3405935/dynamic-data-for-adapter-attached-to-edittext – ankitjaininfo

Respuesta

2

Escriba una costumbre SimpleCursorAdapter. Ahora asocia este adaptador a tu EditText. Aquí está el código para construir un objeto Cursor y devolverlo:

public class ValueCursorAdapter extends SimpleCursorAdapter implements Filterable 
{ 

    ... 
// overrise the newView() to associate mCursor[1] and mCursor[2] to relevant views within 
    ... 

    @Override 
    public Cursor runQueryOnBackgroundThread(CharSequence constraint) 
    { 
     MatrixCursor mCursor = new MatrixCursor(new String[] { "_id", "uri", "label" }); 
     .. // result = ?? 
      while (result.hasNext()) 
      { 
       mCursor.addRow(new Object[] { count, "uri", "title"}); 
       count++; 
      } 
     return mCursor; 
    } 
} 

Aquí se muestra un ejemplo para Customizing Cursor Adapter. Es posible que deba personalizarlo para que se ajuste a sus requisitos.

+0

Esto funcionará de forma dinámica. Lo que quiero decir es que la solicitud no se enviará solo una vez por primera vez, sino que se enviará a cada personaje ingresado en el texto de edición. ¿Es eso factible? – sunil

+0

¡Sí! Se llama al método 'runQueryOnBackgroundThread' para cada carácter presionado. – ankitjaininfo

Cuestiones relacionadas