2013年7月15日月曜日

Androidのオートコンプリートで制限



AndroidのAutoCompleteTextViewウィジェットを使うことで,検索候補とかEclipseの入力候補のようなオートコンプリート機能を実装することができます.
詳しくはTechBoosterさんのページなんかを参考にしてもらうとして,候補を追加していくと増えすぎてしまう問題の応急処置について.

AutoCompleteViewを使う際ListAdapterインターフェイスを継承したインスタンス(ArrayAdaperなど)を登録しますが,なぜかArrayAdapterのgetItemやgetCountが使えなかったので別途Listで候補一覧を管理し,一番古いのをremoveで削除します.



    adapter = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_dropdown_item_1line);
    autoCompleteList = new ArrayList<String>();
                         …中略…
    if(num >= MAX_AUTO_COMPLETE){
            String oldest = autoCompleteList.get(0);
            adapter.remove(oldest);
            autoCompleteList.remove(0);
     }
     adapter.add(name);
     editText.setAdapter(adapter);
     autoCompleteList.add(name);
   


もうちょっとカッコいい方法ありそう…

0 件のコメント:

コメントを投稿