Standardmäßig speichert die EditText-Ansicht ihren Status. Dies wird durch Setzen von Flags im Code erreicht, die der Ansicht mitteilen, dass der Status gespeichert werden soll, wenn die Ansicht nicht sichtbar ist oder der Fokus verloren gegangen ist. Der Text wird nach dem Drehen des Geräts automatisch gespeichert und wiederhergestellt. saveEnabled Eigenschaft auf false:
android:saveEnabled="false"
oder programmatisch, ruft view.setSaveEnabled(false)
Die automatische Speicherung von Zustand EditText Ansicht kann durch Setzen des Android im XML-Layout-Datei deaktiviert werden.
saveEnabled steuert, ob das Speichern des Status dieser Ansicht aktiviert ist (dh ob die onSaveInstanceState() -Methode aufgerufen wird). Beachten Sie, dass selbst wenn das Einfrieren aktiviert ist, der Ansicht immer noch eine ID zugewiesen sein muss (über setId()), damit der Status gespeichert wird. Dieses Flag kann nur das Speichern dieser Ansicht deaktivieren. Bei allen untergeordneten Ansichten kann der Status noch gespeichert werden. saveEnabled-Attribut ist Teil von Android View - View Code. Hier bezieht sich Teile des Codes:
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);
}
}
....
Setzen Sie den Wert der TextView über Code? – Atrix1987
Ich frage nicht, wie man es behält, aber wie es automatisch von Android gehandhabt wird? –
eigentlich wird es ... oder Sie versuchen, etwas anderes zu sagen?/ – Kiran