2

データベースに保存されている値に基づいて入力するスピナーがいくつかあります。スマートフォンを縦に持っていると完全に機能しますが、アクティビティを開始するときに横に持っていると(横向きで表示するように)、すべてインデックス0が選択された状態になります。マニフェストでは、を使用して、電話の向きに関係なく、アクティビティを常に縦向きで表示するように設定しましたandroid:screenOrientation="portrait"

回答後の編集: <snip>

Spinnerには独自のBaseAdapterサブクラスを使用し、そのアイテムには独自のカスタムクラスを使用します。カスタムアイテムをオーバーライド.equals().hashCode()てみましたが、それは役に立ちませんでした。また、SpinnerのonRestoreInstanceState()メソッドにブレークポイントを設定して、それが何らかの形で関係しているかどうかを確認しましたが、呼び出されませんでした。

回答後の編集:解決策を見つけたら、以前に提供したすべての詳細を削除するのが最善だと思います。これは、将来このページにアクセスする可能性のある人にはまったく役立ちません。以下の私自身の質問に対する答えを参照してください。

4

1 に答える 1

0

anthropomoとの話し合いにより、カスタムAdapterクラスで非同期作業を行っていたことを思い出しました。これが原因のようです。競合状態でした。電話を縦向きにしたときに一貫して正しく機能し、横向きで一貫して失敗した理由はわかりませんが、教訓が得られました。非同期のことを行う場所を常に覚えて、最初にそこで確認してください。

于 2013-01-29T02:28:41.010 に答える