SharedPreferences басқа мәнді қайта жазады

SharedPreferences проблемасымен байланысты екі түрлі мәнді сақтау керек болса. Мен осы кодты қолданамын:

SharedPreferences sharedPref = getSherlockActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();

editor.putInt(getString(R.string.SavedStartSilentHour), hour);
editor.commit();

editor.putInt(getString(R.string.SavedStartSilentMinute), min);
editor.commit();

// One editor.commit() is enough

Егер осы кодты іске қоссам, бірінші мән seccond мәнімен қайта жазылады. Екінші бөлікті ашсам, мән дұрыс сақталады. Неге солай?

4
Бұл сізге рахмет! Кейде ағаштарды көп ағаштардан көре алмайсың ... Рахмет.
қосылды автор Cilenco, көзі
Бұл сізге рахмет! Кейде ағаштарды көп ағаштардан көре алмайсың ... Рахмет.
қосылды автор Cilenco, көзі
Сіздің дегенді анықтайтын xml файлын жіберіңіз.
қосылды автор MaciejGórski, көзі
Сіздің дегенді анықтайтын xml файлын жіберіңіз.
қосылды автор MaciejGórski, көзі
@ user2246674 Менің пікіріңізді жауап ретінде жариялау жақсы болар деп ойлаймын.
қосылды автор MaciejGórski, көзі
@ user2246674 Менің пікіріңізді жауап ретінде жариялау жақсы болар деп ойлаймын.
қосылды автор MaciejGórski, көзі

7 жауаптар

Сіздің кодыңыз керемет көрінеді!

Сіз барлық заттарды «puts» операцияларынан кейін жасай аласыз. Мен бұл сіздің проблема болар деп ойласам да ...

Тек SavedStartSilentHour және SavedStartSilentMinutes xml мәндері дұрыс анықталғанына көз жеткізіңіз, яғни олар бірдей болса, олар қайта жазылады. (Бұл сіздің кодыңызды ескере отырып, маған ешқандай мағынасы жоқ жалғыз нәрсе).

Сіздің жетістіктеріңіз туралы біліңіз;)

3
қосылды
Бұл сізге рахмет! Кейде ағаштарды орманнан көре алмайсың ... 0 0 Мен ішкі құндылықтарды өзгерттім және қазір ол тамаша жұмыс істейді. Рақмет сізге.
қосылды автор Cilenco, көзі

Сіздің кодыңыз керемет көрінеді!

Сіз барлық заттарды «puts» операцияларынан кейін жасай аласыз. Мен бұл сіздің проблема болар деп ойласам да ...

Тек SavedStartSilentHour және SavedStartSilentMinutes xml мәндері дұрыс анықталғанына көз жеткізіңіз, яғни олар бірдей болса, олар қайта жазылады. (Бұл сіздің кодыңызды ескере отырып, маған ешқандай мағынасы жоқ жалғыз нәрсе).

Сіздің жетістіктеріңіз туралы біліңіз;)

3
қосылды
Бұл сізге рахмет! Кейде ағаштарды орманнан көре алмайсың ... 0 0 Мен ішкі құндылықтарды өзгерттім және қазір ол тамаша жұмыс істейді. Рақмет сізге.
қосылды автор Cilenco, көзі

Бірінші қоңырауды жою

editor.commit();

және сіз жақсы боласыз.

0
қосылды
Жұмыс істемейді...
қосылды автор Cilenco, көзі
Мен неге дегенді білмеймін, бұл «бірінші мәнді [..] екінші мәнмен ауыстырылады».
қосылды автор user2246674, көзі

Бірінші қоңырауды жою

editor.commit();

және сіз жақсы боласыз.

0
қосылды
Жұмыс істемейді...
қосылды автор Cilenco, көзі
Мен неге дегенді білмеймін, бұл «бірінші мәнді [..] екінші мәнмен ауыстырылады».
қосылды автор user2246674, көзі

Бірінші қоңырауды жою

editor.commit();

және сіз жақсы боласыз.

0
қосылды
Жұмыс істемейді...
қосылды автор Cilenco, көзі
Мен неге дегенді білмеймін, бұл «бірінші мәнді [..] екінші мәнмен ауыстырылады».
қосылды автор user2246674, көзі

Мәселе, ең алдымен, екінші тапсырмада бірдей енгізілген мәнді қайта жазатындықтан, кілтті қайта пайдалану арқылы туындауы мүмкін.

Бұл гипотезаны тексерудің бір жолы - бұл мүмкіндікті жоюға болатын қарапайым кілттерді қолдану, мысалы:

editor.putInt("hour", hour);
editor.putInt("min", min);

Немесе, отладчик қосылуы мүмкін және getString (keyId) нәтижелерін салыстыруға болады.

Егер мәселе шынымен «түзетілсе», SavedStartSilentHour және SavedStartSilentMinute ресурстары іс жүзінде түрлі жолдарына бағаланатынын тексеріңіз - ресурс файлының өзін тексеріңіз .

0
қосылды

Мәселе, ең алдымен, екінші тапсырмада бірдей енгізілген мәнді қайта жазатындықтан, кілтті қайта пайдалану арқылы туындауы мүмкін.

Бұл гипотезаны тексерудің бір жолы - бұл мүмкіндікті жоюға болатын қарапайым кілттерді қолдану, мысалы:

editor.putInt("hour", hour);
editor.putInt("min", min);

Немесе, отладчик қосылуы мүмкін және getString (keyId) нәтижелерін салыстыруға болады.

Егер мәселе шынымен «түзетілсе», SavedStartSilentHour және SavedStartSilentMinute ресурстары іс жүзінде түрлі жолдарына бағаланатынын тексеріңіз - ресурс файлының өзін тексеріңіз .

0
қосылды