1

こんにちは、選択すると、およびボタン
の内容を変更する Spinner オブジェクトがいくつかあります。EditText画面のオンとオフを切り替えるまで、すべて正常に動作しています。
アプリケーションの向きを横向きのみにしたため、画面のオンとオフを切り替えると、アクティビティが破壊されます。

ここで発生する問題は、Spinner、EditText、および Button オブジェクトのすべての状態情報が失われることです。そこで、Spinner、Button、EditText の状態をこの順序で元に戻すことで、メソッドとメソッドを使用
してこの問題を解決しようとしました。 問題は、なんらかの理由で、Button と EditText の状態を復元した後にメソッドが呼び出されたため、それらがデフォルト値に設定されていることです。 onItemSelected リスナーを一時的に無効にしてみましたが、再度有効にするとすぐに onItemSelected メソッドが呼び出され、Button と EditText の状態がリセットされます。onSaveInstanceStateonRestoreInstanceState
onItemSelected

注:アプリがユーザーではなくシステムによって強制終了された後にのみ、状態を復元したいと考えています。

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 に答える