5

私はAutoCompleteTextViewカスタムアダプターを使用してアプリで使用していますが、ポートレートモードで完全に機能します。ただし、水平モードでは、ソフトウェアキーボードが画面の大部分を占め、テキストビューはアダプタが提供するビューの代わりにオーバーレイボタンを使用します。

これが舞台裏でどのように機能するかについての明確なドキュメントを見つけることができませんでした。ランドスケープモードでは、AutoCompleteTextViewアダプタのgetView()メソッドをバイパスし、を使用していくつかの汚い作業をgetItem()行い、生の文字列を使用してアイテム自体をレンダリングするようです。

さらに悪いことに、オートコンプリートのヒントの2つのリストが実際に表示されているようです。標準のドロップダウンボタンとオーバーレイボタンが同時に表示されます(これは、ランドスケープでの展開を防ぐためにAutoCompleteTextViewimeOptionsを設定するとよくわかります)。flagNoExtractUiAutoCompleteTextView

両方の状況で独自のビューを提供したいのですが、これまでのところ、ドロップダウンメニューに対してのみ提供できました。オーバーレイリストのカスタムビューを提供するための変更はありますか?

申し訳ありませんが、ランキングが低いため、まだ画像を投稿できません。誰かがそれらを必要とするならば、私はそれらを送ることができます。

4

1 に答える 1

0

私はこの問題に自分で遭遇しました。あなたが言ったように、ランドスケープでは、TextViewはの結果に基づいてオートコンプリートのヒントを基にしていgetItem()ます。このシナリオではテキスト以外のものを提供する方法は実際にはわかりませんが、横向きに表示する正しいテキストを取得する簡単な解決策はtoString()、ヒントの基になっているオブジェクトをオーバーライドすることです。

たとえば、私のシナリオでは、Contactオブジェクトのリストを使用してオートコンプリートヒントを入力しているのでtoString()、Contactクラスをオーバーライドして、「Contact@a2a6d4d3a5」のような生のオブジェクト表現ではなく「FirstNameLastName」を表示するようにしました。

于 2012-08-15T15:28:18.850 に答える