Share this post !!

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

AutoCompeleteTextView#setThreshold(int)とは

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

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

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

自作クラス

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

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

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

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

layoutファイル

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

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

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

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

コメントを残す