AutoCompleteTextViewの使い方

Google検索のように文字の入力最中に候補をドロップダウン表示するにはAutoCompleteTextViewが使えます。

このビューでドロップダウンする文字配列を登録するには次のようなArrayAdapterを作ります。

ArrayList<String> dropdownTexts = new String[]{"AAA", "AAB", "ABC"};
    /// ドロップダウン表示させる文字列配列
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line, dropdownTexts);

android.R.layout.simple_dropdown_item_1lineはあらかじめAndroid側で用意されているテキストビューのリソースIDです。

ArrayAdapterの最後の引数に渡しているのがテキスト入力中に候補表示されるテキストになります。

あとはこのアダプターをAutoCompleteTextViewに設定するだけです。

AutoCompleteTextView searchBox = (AutoCompleteTextView) findViewById(R.id.searchBox);
searchBox.setAdapter(adapter);

何文字入力したら候補を表示するかはsetThresholdに文字数を渡すことで調節できます。特別な事情がなければ0を渡しておけばOKです。

searchBox.setThreshold(0);

コード例

実際に検索バーのようにドロップ表示するようなコードを書いてみます。

public class AppListActivity extends ActionBarActivity 
{

    AutoCompleteTextView searchBox;
    List<String> dropdownTexts = Arrays.asList(new String[]{"AAAAA", "Abcdef", "Android", "Ant", "Apple"});

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        searchBox = (AutoCompleteTextView) findViewById(
                R.id.searchBox);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line, dropdownTexts);
        searchBox.setAdapter(adapter);
    }
}

このテキストビューでAと入力すると自動的に下の画像のようにドロップダウンが表示されます。

AutoCompleteTextViewの例

入力履歴を保存しておけばGoogle検索バーのようなものが簡単に作れます。

以上、AutoCompleteTextViewの使い方でした。では、また!

関連項目
プライバシーポリシー