2016-06-23 7 views
0

in meiner app Ich habe bis zu 20 Tage Urlaub, die vom Benutzer definiert werden können, und wenn sie auf den gemeinsam genutzten Einstellungseditor Spar ich es so eingerichtet haben:wann man editor.apply anruft?

String checkhold = "0"; 
String holodate = g.getData82();// string is either "0" if no holidays entered, or, for example, "1,1,7,4,12,25, if January 1st, July 4th and December 25th is entered 

if (!holodate.equals("0")) { 

    checkhold = holodate; 
    int value = 0; 
    String splitHere = "[,]"; 
    String[] sToken = holodate.split(splitHere); 
    int count = holodate.length() - checkhold.replace(",", "").length(); 
    g.setData92(emp, count); 
    double holidayNumber = count * 0.5; 
    passeditor.putDouble(holnums, holidayNumber); 

if (count >= 0) { 
    value = Integer.parseInt(sToken[0]); 
    g.setData90(0, value); 
    passeditor.putInt(holmonth1, value);passeditor.apply(); 
    value = Integer.parseInt(sToken[1]); 
    g.setData91(0, value); 
    passeditor.putInt(holday1, value);passeditor.apply(); 
    } 

    if (count >= 2) { 
    value = Integer.parseInt(sToken[2]); 
    g.setData90(1, value); 
    passeditor.putInt(holmonth2, value);passeditor.apply(); 
    value = Integer.parseInt(sToken[3]); 
    passeditor.putInt(holday2, value);passeditor.apply(); 
    g.setData91(1, value); 
    } 
//....continue 18 more code blocks 
} 

Wie Sie sehen, ich habe genannt passegitor.apply 40 mal, Aber was ich mich wundere ist, muss ich penditor.apply nach jedem penditor.put im Falle dieser 20 Codeblöcke aufrufen oder kann ich es einmal am Ende jedes Codeblocks aufrufen, oder kann ich es am Ende aller 20 Codeblöcke nur einmal aufrufen? Nur versuchen, unnötigen Code zu beseitigen

Antwort

3

Rufen Sie es an, wenn Sie Änderungen speichern möchten SharedPreferences - Sie können es einmal am Ende der Bearbeitung aufrufen.

+0

Dank, die absolut Sinn macht – Wraithious

1

können Sie tun, folgen als

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
SharedPreferences.Editor editor = preferences.edit(); 
editor.putString("Name","name"); 
editor.putInt("integer",22); 
. 
. 
. 
editor.apply();//At the end save all by calling editor.apply() 
Verwandte Themen