所以我发现Spinner在你第一次设置监听器时会调用OnItemSelectedListener。这导致了问题,所以我放入了这个块。
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3)
{
if(blockFirstTimeSpinnerCall != true)
{
//Whatever code
}
blockFirstTimeSpinnerCall = false;
}
这很有效,但旋转屏幕时会出现问题。这导致必须单击一次项目,然后单击要实际处理下一个选定选项的实际项目。这对用户体验不利。但我需要阻塞其他方面,这个调用将覆盖我通过onSaveInstance State保存的数据。当应用程序是一个新的实例时,任何人都可以采取一种方式来阻止,而无需选择两次即可恢复。
非常感谢阅读。