在AutoCompleteTextView中右侧加载指示器

时间:2013-07-22 07:20:58

标签: android autocompletetextview

我使用从Web服务器获取的数据填充AutoCompleteTextView。这需要3-5秒。如果没有表明它的自动完成没有人等待。因此,我希望显示一个这样的指标:

enter image description here

我试过了:

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>

但是这没用。右侧抽屉是静止的。

以上图片类型的布局包含搜索ImageViewAutoCompleteTextViewProgressBar和go Button所有无边框< / strong>那种背景?因此,progressbar看起来像AutoCompleteTextView内部。

谢谢。

1 个答案:

答案 0 :(得分:0)

您想使用进度条而不是微调器。使用图形视图将它们放在AutoCompleteTextView字段上并设置其ID。我设定我的进度加载。

<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" />

然后在你的活动/片段中:

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

它会自动显示,因此我们最初将其设置为隐藏。然后,我们在AutoCompleteTextView上的addTextChangedListener上将其设置为VISIBLE。然后,只要完成任务,就将其设置为隐藏。