AutoCompleteTextViewで文字入力しなくても候補を表示する方法

こんにちは。今回も前回に引き続き小ネタを紹介しようと思う(上手くいって嬉しかったので共有したい)。

AutoCompeleteTextView#setThreshold(int)とは

“AutoCompleteTextView”とは何ぞや,という話は,私がいつもお世話になっているTechBoosterさんの記事,「AutoCompleteを使う」を見ていただければ幸いである(投げた)。
さて,そのAutoCompleteTextView(EditText拡張のはずなのになんで”TextView”なんだ……)の入力補完を開始する文字数を規定するメソッド,

について,ここに入れる値は「1以上」と決まっている(0をいれても挙動は1と同様になる)。つまり,最低でも1文字は入れないと補完がきかないのだ。

なんだそれは,ということで入力無しでも補完がされるように変更してみた。

自作クラス

まず,AutoCompleteTextViewを拡張した自作クラスを作る。

コンストラクタは引数の違う3種類を入れておかないとアプリが落ちる。その上で,

とすることで,EditTextをタッチ(つまり入力が0の時でも)すればshowDropDown()(補完候補の表示)を実行するようになる。

他にも機能は足せるかもしれないが,とりあえずここで終わりにしよう。

layoutファイル

実際に使用するにはレイアウトをいじる必要がある。

のように,Viewタグをパッケージ名を含めた自作クラスのものにすげ替える。その他,Activity内での生成は,

といつも通りキャストすればいい。

こんな細々としたことでも,自分で改造ができるようになってくるとアプリ開発してるなあって気がしてくるのです。

Share this:

コメントを残す

メールアドレスが公開されることはありません。

ABOUTこの記事をかいた人

東京大学大学院修士号(情報理工学)取得。
Androidアプリ開発者6年目。出没地域は映画館,本屋,勉強会。あと神社仏閣。御朱印の集印がマイブーム。今の目標は滋賀県・多賀大社に参拝すること。