1

欲しいもの

  1. 単純なEditText。ユーザーはいつでもテキストを入力できる必要があります。

  2. このEditTextをクリックすると、EditTextに固定されたポップアップが表示されます。

  3. このEditTextのonClickをクリックすると、ポップアップがすでに表示されている場合は、ポップアップを閉じます。

  4. このポップアップには、クリックするとEditTextがクリックされたアイテムで埋められるアイテムのリスト(私が決定し、フィルタリングなし)が含まれます。

  5. 入力を開始すると、ポップアップが消えるはずです。

  6. ドロップダウンリストのアニメーションを設定できるはずです。

私の選択肢は何でしたか

明らかに、AutoCompleteTextView。AutoCompleteTextViewをカスタマイズした後、うまく機能しました。しかし、2つの問題がありましたか?

ポイント1、2、4、5を達成することができました。この3番と5番を回避するにはどうすればよいですか?

何も機能しなかったので...

編集テキストを入れてポップアップウィンドウを表示するだけでいいと思いました。:)

しかし、それは完全に失敗します...

簡単な方法でやってみました。EditTextを追加しました。次に、PopupWindowのクラスを作成し、その中でリストビューを拡張しました。次に、それをEditTextに固定しました。今、問題は再び始まります-

  1. EditTextをクリックします。ポップアップが表示されます。すべての焦点を取り、キーボードが消えます。絶対に私が欲しいものではありません。そこで、ポップアップウィンドウをフォーカスできないようにしました。

  2. そして今、EditTextをクリックすると、ポップアップが表示されます。焦点を合わせていません。したがって、キーボードは入力を取得し続けます。私が望むようにちょうど完璧です。しかし、ListViewでリスト項目をクリックしても、何も実行されません。なんで?焦点が合っていません!

だから私は今何をしますか?どちらに行けばいいですか?

4

1 に答える 1

0

3.の場合、onFocusChangeリスナー、またはonClickListenerを作成して、明示的にを呼び出すことができます_autoCompleteView.dismissDropDown();。を使用isPopupShowing()して、すでに表示されているかどうかを確認し、その場合は手動で閉じることができます。

5.の場合、同じことを実行しますが_autoCompleteView.registerDataSetObserver、そのロジックをonChanged()イベントまたは場合によってはaddTextChangedListenerautoCompleteTextViewに配置します。

これがあなたが探していた機能であるかどうかは完全にはわかりませんが、このスレッドは現在ほぼ1年前のものなので、将来誰かに役立つかもしれません。

于 2013-02-07T19:46:16.217 に答える