В обеих реализациях _utf8_decode
есть пара ошибок. c1
и c2
назначаются глобальными переменными из-за нарушения работы оператора var
, а c3
не инициализируется и не объявляется вообще.
Он работает, но эти переменные будут перезаписаны любые существующие с тем же именем вне этой функции.
Вот версия, которая этого не сделает:
// private method for UTF-8 decoding
_utf8_decode : function (utftext) {
var string = "";
var i = 0;
var c = 0, c1 = 0, c2 = 0;
while ( i < utftext.length ) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
}
else if((c > 191) && (c < 224)) {
c1 = utftext.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c1 & 63));
i += 2;
}
else {
c1 = utftext.charCodeAt(i+1);
c2 = utftext.charCodeAt(i+2);
string += String.fromCharCode(((c & 15) << 12) | ((c1 & 63) << 6) | (c2 & 63));
i += 3;
}
}
return string;
}
Возможно, вам нужно startActivityForResult()
вместо startActivity()
. Затем в вашей деятельности на Пембаяране установите дополнительный результат и прослушайте onActivityResult()
на активности Nota, где вы можете установить новые значения.
С уважением.
onCreate()
больше не будет звонить, когда вы вернетесь в Nota Activity.
Может быть, вы должны попытаться переместить StringRequest
в onResume()/onStart()
, которые вызываются каждый раз, когда отображается активность.
Лучший
В своей деятельности Nota вы должны использовать startActivityForResult () вместо startActivity () , а затем переопределить метод onActivityResult () в том же классе. Исходя из вашего действия Пембаярана, отправьте ваше новое намерение, используя метод setResult () , чтобы результат пришел к обратному вызову onActivityResult () в действии Nota. Попробуйте это.