2013-07-22 1 views
6

Popolare il mio AutoCompleteTextView con i dati ottenuti da un server web. Quale richiede 3-5 secondi. Se non è indicato che è un completamento automatico, nessuno lo attende. Da qui voglio mostrare un indicatore in questo modo:Indicatore di caricamento a destra in AutoCompleteTextView

enter image description here

ho provato questo:

private class getAutoCompletes extends AsyncTask<String, Void, String> { 

private String response; 
@Override 
protected String doInBackground(String... params) { 
    //get autocomplete data 
    return response; 
} 
@Override 
protected void onPostExecute(String result) { 

autoComplete.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); 
ArrayAdapter<String> AutoCompleteAdapter = new ArrayAdapter<String>(
        MainActivity.this, 
        android.R.layout.simple_dropdown_item_1line, autocompletes); 
autoComplete.setAdapter(AutoCompleteAdapter); 
autoComplete.showDropDown(); 
} 
@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 
    autoComplete.setCompoundDrawablesWithIntrinsicBounds(0, 0, 
      R.drawable.rotating_drawable, 0); 
} 
} 

R.drawable.rotating_drawable

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:drawable="@drawable/spinner1" 
     android:duration="50"/> 
    <item 
     android:drawable="@drawable/spinner2" 
     android:duration="50"/> 
    <item 
     android:drawable="@drawable/spinner3" 
     android:duration="50"/> 
    <item 
     android:drawable="@drawable/spinner4" 
     android:duration="50"/> 

</animation-list> 

Ma questo didn' lavoro. Il diritto drawable è fermo.

è anche l'immagine qui sopra tipo di un layout con una ricerca ImageView, AutoCompleteTextView, ProgressBar e un andare Button tutto in no-confini tipo di sfondo? Quindi, il progressbar sembra essere all'interno dello AutoCompleteTextView.

Grazie.

risposta

0

Si desidera utilizzare barre di avanzamento e non spinners. Usa la vista grafica per posizionarli sopra i campi di AutoCompleteTextView e impostare il loro id. Ho impostato il mio per progredire.

<ProgressBar 
    android:id="@+id/progressLoading" 
    style="?android:attr/progressBarStyleSmall" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignRight="@+id/autoCompleteTextViewId" 
    android:layout_alignTop="@+id/autoCompleteTextViewId" 
    android:paddingTop="14dip" 
    android:paddingRight="10dip" /> 

Poi nella vostra attività/frammento:

final ProgressBar barProgress = (ProgressBar) findViewById(R.id.progressLoading); 
originProgress.setVisibility(View.GONE); 

E 'automaticamente visibile in modo che inizialmente impostarlo su nascosto. Quindi lo impostiamo su VISIBLE sul tuo addTextChangedListener su AutoCompleteTextView. Quindi, ogni volta che le attività vengono completate, la si ritorna nascosta.