16

Android のオートコンプリートは、2 文字の後にのみ開始されます。フィールドが選択されたときにリストが表示されるようにするにはどうすればよいですか?

4

6 に答える 6

31

オートコンプリートをフォーカス時に表示するには、フォーカス リスナーを追加し、フィールドがフォーカスされたときにドロップダウンを表示します。次のようにします。

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

または、フォーカス部分が必要ない場合は、 editText.showDropDown() を呼び出してください。

于 2013-02-26T12:41:07.857 に答える
9

setThresholdメソッドを見てください。

public void setThreshold (int threshold)導入されたバージョン
: API レベル 1
ドロップダウン リストが表示される前にユーザーが編集ボックスに入力しなければならない最小文字数を指定します。
しきい値が 0 以下の場合、しきい値 1 が適用されます。

于 2010-11-20T22:29:51.460 に答える
9

AutoCompleteTextView を拡張し、十分なToFilter() メソッドとしきい値メソッドをオーバーライドして、0 しきい値を 1 しきい値に置き換えないようにします。

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;
    }

}
于 2011-12-15T22:53:24.893 に答える
2

SearchView を使用してしきい値を変更したい場合は、次を使用する必要があります。

SearchView.SearchAutoComplete complete = (SearchView.SearchAutoComplete)search.findViewById(R.id.search_src_text);
complete.setThreshold(0);
于 2015-07-27T20:18:55.570 に答える
1

しきい値の設定に応じて、アダプターの左側に 1 つまたは 2 つの白い文字を埋め込みます。

于 2010-11-20T22:28:22.837 に答える