2

アイテムをクリックすると、AutoComplete ドロップダウンに値を設定する ArrayAdapter が、横向きで 5 を超える位置に対して「-1」を返します。アプリケーションを縦向きで実行している場合、アイテムをクリックすると正しいインデックスが返されます。以下の 2 つのスクリーン ショットは、アダプターが各方向でデータを取り込む方法を示しています。

編集:電話を横向きにするのではなく、ドロップダウンリストを強制的に使用する方法はありますか?

ランドスケープ オートコンプリート

ポートレートのオートコンプリート

これの原因は何かわかりませんか?

4

2 に答える 2

0

小さな画面の電話がSamsung Galaxy S IIIと同じことをする場合(配列の6番目の位置を超えて-1のインデックスを返す)、それでもクラッシュが発生するため、理想的ではありません。 .

if (!((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL)) {
            mQuery.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
} else {
            mQuery.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
}

HTC Wildfire のドロップダウンは Samsung と同じですが、インデックス 5 を超える位置を返します。

S III が動作しない理由は引き続き調査しますが、OS レベルであると推測しています。

于 2013-01-08T14:34:19.320 に答える