Android 旋转器状态在景观中不受尊重

Android 旋转器状态在景观中不受尊重,android,android-spinner,android-orientation,Android,Android Spinner,Android Orientation,我有一些微调器,它们是基于数据库中存储的值填充的。当我垂直握住手机时,它们工作得非常好,但当我在开始活动时侧身握住手机时(好像在横向视图中),它们最终都会选择索引0。在我的清单中,我使用android:screenOrientation=“纵向”将活动设置为始终以纵向显示,而不管手机的方向如何 回答后编辑: 我为微调器使用自己的BaseAdapter子类,为其项使用自己的自定义类。我尝试在我的自定义项中重写.equals()和.hashCode(),但没有帮助。我还在微调器的onrestorei

我有一些微调器,它们是基于数据库中存储的值填充的。当我垂直握住手机时,它们工作得非常好,但当我在开始活动时侧身握住手机时(好像在横向视图中),它们最终都会选择索引0。在我的清单中,我使用
android:screenOrientation=“纵向”
将活动设置为始终以纵向显示,而不管手机的方向如何

回答后编辑:

我为微调器使用自己的BaseAdapter子类,为其项使用自己的自定义类。我尝试在我的自定义项中重写
.equals()
.hashCode()
,但没有帮助。我还在微调器的
onrestoreinnstancestate()
方法中设置了一个断点,以查看是否涉及到这个问题,但没有调用它


回答后编辑:找到解决方案后,我认为最好删除我之前提供的所有细节。它对将来可能访问此页面的任何人都没有任何帮助。请参阅下面我自己问题的答案。

与anthropomo的讨论让我想起我在自定义适配器类中做了一些异步工作,这似乎是罪魁祸首。这是一个比赛条件。我不知道为什么它始终正确地工作时,举行的电话肖像,并一贯失败的景观,但教训。始终记住执行异步操作的位置,并首先检查这些位置。

尝试将setSelection()方法放在onResume()中。好主意。我刚试过。没有变化。你能把清单的活动部分放在你的帖子里吗?另外,当从adb或启动器启动应用程序时,是否会发生这种情况?在从adb启动时,我看到了一些奇怪的行为,尤其是在屏幕关闭的情况下。我尝试从我的comp中拔下手机,强制停止应用程序,然后从启动器重新启动它。没有变化。我试图在我的问题中只添加最基本的代码。。。可以很容易地添加更多的代码,如果您认为过程中的任何部分都有更多的代码会有帮助,请告诉我。我很想看看spinner子类。是否存在不调用super的重写方法?根据我的经验,这些小部件将保持状态,即使在实际的方向改变时也不会有任何额外的帮助。