1

嗨,
我有一些 Spinner 对象,当它们被选中时,会更改 anEditText和 Button 的内容。一切正常,直到我打开和关闭屏幕。
我只设置了面向应用程序的横向,因此在打开和关闭屏幕时会导致活动被破坏。

这里出现的问题是我丢失了 Spinner、EditText 和 Button 对象的所有状态信息。
所以我尝试用onSaveInstanceStateandonRestoreInstanceState方法解决这个问题,按顺序设置 Spinner、Button 和 EditText 的状态。
问题是,由于某种原因,onItemSelected在我恢复 Button 和 EditText 的状态后调用了该方法,因此它们被设置为默认值。
我尝试暂时禁用 onItemSelected 侦听器,但一旦我再次启用它们,就会调用 onItemSelected 方法并重置 Button 和 EditText 状态。

注意:我只想在应用程序被系统杀死后恢复状态,而不是用户。

4

1 回答 1

0

您可以创建一个全局布尔变量并在恢复时将其设置为 true。在 onItemSelected 中,您可以检查此变量,如果为 true,您将不会更改按钮和 editText 内容,只需将此变量设置为 false。在 onRestoreInstaceState 中:

wasRestored = true;

在 onItemSelected 中:

if(wasRestored){
   wasRestored=false;
   return;
} else {//change editText and Button content}
于 2012-11-20T14:41:40.063 回答