2011-04-21 24 views

Respuesta

3

1) usted tiene que hacer primero una clase para AsyncTask y hay que establecer una conexión con el servidor remoto en su método() doInBackground

2) usted tiene que hacer ArrayAdapter de la respuesta de remoteServer esto también le ha para que en el método

3 doInBackground()) después del éxito usted tiene que fijar el adaptador a AutoCompleteTextView

new AsyncTask<Integer, Void, arrayList>() { 
    ProgressDialog progressDialog; 

    @Override 
    protected void onPreExecute() { 
     progressDialog = ProgressDialog.show(context, "downloading...", "Please wait..."); 
     super.onPreExecute(); 
    } 

    @Override 
    protected void onPostExecute(arrayList result) { 
     //make arrayAdapter from result 
     //set adapter to AutoCompleteTextView 
     progressDialog.dismiss(); 
     super.onPostExecute(result); 
    } 

    @Override 
    protected arrayList doInBackground(Integer... params) { 
     // make connection to remote server 
     //retrive response from remote server 
     // make arrayList from response 

     return arrayList 
    } 
}.execute(1); 
+1

Esto bloquea la IU. Esto dispara la solicitud de cada cambio de texto y, por lo tanto, la IU está bloqueada. Publica una solución –

+0

¿Funciona de esta manera en android4? – Akilan

6

AutoCompleteTextView yo no quise que este tipo de acción, una vez pensé que tú y hice muy b código de anuncio con eso ...

si la lista de autocompletar proviene de la red basada en cada carácter que ingresa, será mejor que cree un Diseño lineal vertical que contenga un Texto de edición y una Vista de lista, y cree un grupo de conexión.

para cada tipo de llave, compruebe si se escribió en 100-130 ms para asegurarse de que el usuario probablemente espere una respuesta y emita una solicitud, en cualquier nueva solicitud, elimine o invalide la última solicitud que haya enviado .

una respuesta llega con seguridad, actualice su adaptador de lista.

funciona sin problemas para mí.

AutoCompleteTextview usa una lista pre hecha. usa AsyncTask en sí, así que es bastante malo usar uno para actualizar la lista que usa ...

+1

por favor publique el código para esto. Sería de gran ayuda. –

+3

La forma más fácil de agregar autocompletar desde el servidor (el servidor necesita enviar una respuesta JSON) https://github.com/mobisystech/autocompletetextview – Veer

+0

@Veer. Muchas gracias. Muy buen elemento, estoy contento con eso. – Bakhtiyor

Cuestiones relacionadas