12

レクリエーション状態に関するドキュメント:Activity

デフォルトでは、システムは Bundle インスタンス状態を使用して、アクティビティ レイアウトの各 View オブジェクトに関する情報 (EditText オブジェクトに入力されたテキスト値など) を保存します。そのため、アクティビティ インスタンスが破棄されて再作成された場合、レイアウトの状態はコードを必要とせずに以前の状態に復元されます。

View.setTag(Object) 状態のドキュメント:

このビューに関連付けられたタグを設定します。タグは、階層内のビューをマークするために使用でき、階層内で一意である必要はありません。タグを使用して、別のデータ構造に頼ることなくビュー内にデータを格納することもできます。

私の質問は: アクティビティのレイアウトでビュー (一意の ID を持つ) にタグを設定し、アクティビティがシステムによって破棄され、その後再作成された場合、そのビューは再作成されたときに自動的にタグ付けされますか?最初に設定したオブジェクト?

4

1 に答える 1

7

アクティビティのレイアウトでビュー (一意の ID を持つ) にタグを設定し、アクティビティがシステムによって破棄され、その後再作成された場合、そのビューは再作成されたときに、最初に設定したオブジェクトで自動的にタグ付けされますか? ?

いいえ、ソースコードを読んだことに基づいています。

システムは後日アクティビティを再作成することを想定しているため、元のタグへの参照が保持されていることがわかりました。

保存されたインスタンスの状態Bundleはプロセスの境界を越えて転送可能である必要があるため、これが常に可能であるとは限りません。

于 2013-04-23T15:35:34.100 に答える