デフォルトでは、EditTextビューは状態を保存します。これは、ビューが表示されていないかフォーカスが失われているときにビューに保存状態を知らせるフラグでフラグを設定することで実現します。テキストはデバイスを回転した後に自動的に保存され、復元されます。 falseにsaveEnabledプロパティ::のEditTextビューの状態の自動保存は、Androidを設定することにより、XMLレイアウトファイルで無効にすることができます
android:saveEnabled="false"
またはプログラム、view.setSaveEnabled(false)
を呼び出します。
saveEnabledは、このビューの状態の保存が有効かどうか(つまり、そのonSaveInstanceState()メソッドが呼び出されるかどうか)を制御します。フリーズが有効になっていても、ステートを保存するためには(setId()を介して)ビューにIDが割り当てられている必要があります。このフラグは、このビューの保存のみを無効にすることができます。子ビューの状態は保存されている可能性があります。 saveEnabled属性はandroidビューの一部です - View Code。 ...
public boolean isSaveEnabled() {
return (mViewFlags & SAVE_DISABLED_MASK) != SAVE_DISABLED;
}
public void setSaveEnabled(boolean enabled) {
setFlags(enabled ? 0 : SAVE_DISABLED, SAVE_DISABLED_MASK);
}
...
void setFlags(int flags, int mask) {
int old = mViewFlags;
mViewFlags = (mViewFlags & ~mask) | (flags & mask);
int changed = mViewFlags^old;
if (changed == 0) {
return;
}
int privateFlags = mPrivateFlags;
/* Check if the FOCUSABLE bit has changed */
if (((changed & FOCUSABLE_MASK) != 0) &&
((privateFlags & HAS_BOUNDS) !=0)) {
if (((old & FOCUSABLE_MASK) == FOCUSABLE)
&& ((privateFlags & FOCUSED) != 0)) {
/* Give up focus if we are no longer focusable */
clearFocus();
} else if (((old & FOCUSABLE_MASK) == NOT_FOCUSABLE)
&& ((privateFlags & FOCUSED) == 0)) {
/*
* Tell the view system that we are now available to take focus
* if no one else already has it.
*/
if (mParent != null) mParent.focusableViewAvailable(this);
}
}
....
コードでTextViewの値を設定していますか? – Atrix1987
私はそれを保持する方法を尋ねていませんが、それがアンドロイドによって自動的にどのように処理されるのですか? –
実際にそれは...あなたは何か他のことを言おうとしていますか?/ – Kiran