立即在Android上显示自动填充功能

时间:2010-11-20 22:26:06

标签: android autocomplete letter

Android自动填充仅在两个字母后开始。如何在选择字段时显示列表?

6 个答案:

答案 0 :(得分:24)

要在焦点上显示自动完成功能,请添加焦点侦听器,并在字段获得焦点时显示下拉列表,如下所示:

editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
  @Override
  public void onFocusChange(View view, boolean hasFocus) {
    if(hasFocus){
      editText.showDropDown();
    }
  }
});

如果您不需要焦点部分,只需调用editText.showDropDown()。

答案 1 :(得分:9)

查看setThreshold方法:

  

public void setThreshold (int   阈值)
  自:API级别1   指定最小数量   用户必须输入的字符   在下拉列表之前编辑框   所示。
  当阈值小于或等于0时,应用阈值1。

答案 2 :(得分:9)

扩展AutoCompleteTextView,覆盖enoughToFilter()方法和阈值方法,使其不会用0阈值替换0阈值:

public class MyAutoCompleteTextView extends AutoCompleteTextView {

    private int myThreshold;

    public MyAutoCompleteTextView(Context context) {
        super(context);
    }

    public MyAutoCompleteTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public MyAutoCompleteTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void setThreshold(int threshold) {
        if (threshold < 0) {
            threshold = 0;
        }
        myThreshold = threshold;
    }

    @Override
    public boolean enoughToFilter() {
        return getText().length() >= myThreshold;
    }

    @Override
    public int getThreshold() {
        return myThreshold;
    }

}

答案 3 :(得分:1)

根据阈值设置,在左侧填充一个/两个白色字符适配器。

答案 4 :(得分:1)

对于想要使用SearchView更改阈值的人,您必须使用:

SearchView.SearchAutoComplete complete = (SearchView.SearchAutoComplete)search.findViewById(R.id.search_src_text);
complete.setThreshold(0);

答案 5 :(得分:0)

更改XML中设置的替代方法: 正如其他人所说,你需要设置你的Auto Completion Threshold&#39;到1

除了@systempuntoout提到的内容。

您也可以在XML文件中执行此操作,如图所示

<AutoCompleteTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/edittext_id"
    android:inputType="textAutoComplete"
    android:completionThreshold="1"
/>

注意以下行: android:completionThreshold =&#34; 1&#34;