editor.putString("text", mSaved.getText().toString());
Здесь mSaved
может быть любым TextView
или EditText
, из которого мы можем извлечь строку. вы можете просто указать строку. Здесь текст будет ключом, который удерживает значение, полученное из mSaved
(TextView
или EditText
).
SharedPreferences prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
Также нет необходимости сохранять файл предпочтений с использованием имени пакета i.e., «com.example.app». Вы можете указать свое собственное имя. Надеюсь, это поможет!
Я заставил это работать, добавив следующий javascript:
// Added to make dates format to ISO8601
Date.prototype.toJSON = function (key) {
function f(n) {
// Format integers to have at least two digits.
return n < 10 ? '0' + n : n;
}
return this.getUTCFullYear() + '-' +
f(this.getUTCMonth() + 1) + '-' +
f(this.getUTCDate()) + 'T' +
f(this.getUTCHours()) + ':' +
f(this.getUTCMinutes()) + ':' +
f(this.getUTCSeconds()) + '.' +
f(this.getUTCMilliseconds()) + 'Z';
};
Я уверен, что это, вероятно, замедляет сериализацию, но это, кажется, делает вещи последовательными в браузерах.
Вы также можете настроить json2.js так, чтобы он всегда использовал собственный Date.prototype.toJSON
вместо возможного нативного. Здесь я раскомментировал две строки, и он работает правильно:
// if (typeof Date.prototype.toJSON !== 'function') {
Date.prototype.toJSON = function (key) {
return isFinite(this.valueOf()) ?
this.getUTCFullYear() + '-' +
f(this.getUTCMonth() + 1) + '-' +
f(this.getUTCDate()) + 'T' +
f(this.getUTCHours()) + ':' +
f(this.getUTCMinutes()) + ':' +
f(this.getUTCSeconds()) + 'Z' : null;
};
String.prototype.toJSON =
Number.prototype.toJSON =
Boolean.prototype.toJSON = function (key) {
return this.valueOf();
};
// }
Почему бы не использовать функцию formatDate в плагине DatePicker jQuery-UI для jQuery для генерации формата, который требуется на стороне сервера?
// Вы можете подумать об усилении сервера, чтобы распознать любой допустимый формат времени ISO 8601:
'2010-02-08T03: 37: 34.327Z'
'2010-02-08T03: 38: 06Z'
'2010-02-08T03: 38 + 01: 00'
'2010-02-08T03: 34: 18-05: 00'
'2010-02-08T03: 34Z'
'2010-02-08'
Это метод преобразования любой строки iso в объект даты javascript. Его можно использовать на сервере с небольшой перевод:
Date.from_iso= function(s){
var D, M= [], hm, min= 0, d2,
Rx= /([\d:]+)(\.\d+)?(Z|(([+\-])(\d\d):(\d\d))?)?$/;
D= s.substring(0, 10).split('-');
if(s.length> 11){
M= s.substring(11).match(Rx) || [];
if(M[1]) D= D.concat(M[1].split(':'));
if(M[2]) D.push(Math.round(M[2]*1000));// msec
}
for(var i= 0, L= D.length; i<L; i++){
D[i]= parseInt(D[i], 10);
}
D[1]-= 1;
while(D.length< 6) D.push(0);
if(M[4]){
min= parseInt(M[6])*60+ parseInt(M[7], 10);// timezone not UTC
if(M[5]== '+') min*= -1;
}
try{
d2= Date.fromUTCArray(D);
if(min) d2.setUTCMinutes(d2.getUTCMinutes()+ min);
}
catch(er){
// bad input
}
return d2;
}
Date.fromUTCArray= function(A){
var D= new Date;
while(A.length < 7) A.push(0);
var T= A.splice(3, A.length);
D.setUTCFullYear.apply(D, A);
D.setUTCHours.apply(D, T);
return D;
}