2017-10-15 2 views
1

Ich mag würde etwas aus dem folgende Android-Fragmente docs verstehen: Android fragment docsWas ist der zweite Parameter in savedInstanceState.getInt?

Im Beispiel am Ende der Seite wird die mCurCheckPosition int in einem Bündel als „curChoice“ gespeichert:

@Override 
    public void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     outState.putInt("curChoice", mCurCheckPosition); 
    } 

jedoch zu Beginn des Beispiels, wenn für die Überprüfung und ggf. „curChoice“, da das Abrufen ist ein zweiter Parameter ‚0‘, die bereitgestellt wird:

if (savedInstanceState != null) { 
      // Restore last state for checked position. 
      mCurCheckPosition = savedInstanceState.getInt("curChoice", 0); 
     } 

Was ist th ist da null? Der Bezugspunkt von "curChoice" ist sicherlich, den Wert zu erhalten, der unter ihm gespeichert wurde?

+0

Wenn der Wert nicht vorhanden war, gibt er null zurück. Und es gibt den zweiten Parameter zurück – KeLiuyue

Antwort

3

Was macht diese Null dort?

Bei Angabe von the documentation handelt es sich um den "zurückzugebenden Wert, wenn [der] Schlüssel nicht existiert".

Sicherlich ist der Bezugspunkt von "curChoice", den Wert zu erhalten, der unter ihm gespeichert wurde?

Ja, und in diesem Fall scheint der Standardwert überflüssig zu sein. Im Allgemeinen ist der Standardwert für Fälle, in denen der Schlüssel bedingt zu Bundle hinzugefügt wird, sodass der Benutzer von Bundle den Fall, in dem der Schlüssel nicht hinzugefügt wurde, sauber verarbeiten kann.

0

Dies ist der Standardwert, der "mCurCheckPosition" zugewiesen wird, wenn im savedInstanceState kein "curChoice" -Schlüssel vorhanden ist. Stellen Sie es sich als einen Fall vor, in dem das Fragment wiederhergestellt wird (also wird sinedInstanceState nicht null sein), aber es gibt keine "curChoice".

2

Sicherlich ist der Bezugspunkt von "curChoice", den Wert zu erhalten, der unter ihm gespeichert wurde?

ich es antwortete: Ja, Entwickler Absicht ist klar, den Wert in savedInstance gespeichert zu bekommen, aber kann es Situation sein:

Schlüssel, da der Wert abgerufen werden = Key die Daten in savedInstance einzufügen,

So Entwickler auch einen Standardwert (O in Ihrem Fall) bereitzustellen, das von null-Zeiger zu verhindern, verwendet wird, exception

Verwandte Themen