2016-06-23 3 views
0

в моем приложении у меня есть до 20 праздников, которые могут быть определены пользователем, и при сохранении их общего редактора предпочтений у меня есть это настроить так:когда нужно позвонить редактору.

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 
} 

Как вы можете видеть, что я имею вызванный passitor.apply 40 раз, Но мне интересно, мне нужно вызвать passitor.apply после каждого passitor.put в случае этих 20 блоков кода или я могу вызвать его один раз в конце каждого блока кода, или я могу просто называть его один раз в конце всех 20 блоков кода? Просто пытайтесь устранить ненужный код

ответ

3

Назовите его, когда вы хотите сохранить изменения в SharedPreferences - вы можете позвонить ему один раз, в конце редактирования.

+0

Спасибо, что имеет смысл – Wraithious

1

Вы можете сделать, как следовать

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() 
Смежные вопросы