1

クラスAで変数vを使用しますが、クラスBに移動してからクラスAに戻ると値が変わります。クラスAに戻ると、値は初期値です。final変数に追加するstaticか、その値を保持するように修正できますか?

ここに画像の説明を入力

ありがとう

4

1 に答える 1

3

ActivityAndroid のクラスについて話している場合、解決策は を使用することstaticです。これは、新しいアクティビティが起動されるたびに、起動アクティビティが「一時停止」される (そのonPause()メソッドが呼び出される) ためです。新しく起動された で「戻る」ボタンが押されるとActivity、スタック内の前のアクティビティが再開され、そのonResume()メソッドが呼び出されます。

一方、static変数は一度だけ初期化されます。また、変数の 1 つのコピーがクラス/アクティビティのすべてのインスタンスで共有されるため、静的を使用するもう 1 つの利点は、他のクラスの値を変更できることです。

あなたの場合、おそらくonResume()メソッドで非静的変数を初期化しているため、別のアクティビティから戻るとその値が再初期化されます。

プレーンな Java クラスを使用して別のクラスから関数を使用した後、コントロールを返すときに同じことが発生するべきではありません。

于 2012-07-19T08:17:24.773 に答える