Передача строковой переменной по ссылке в Android - PullRequest
0 голосов
/ 14 марта 2012

Привет все, я новичок в программировании Android и у меня есть проблема. Я создал приложение судоку с предустановленными головоломками для 3 трудностей, используя указания электронной книги. Дело в том, что я сделал генератор головоломок для своих головоломок, чтобы они были бесконечными. Вот моя проблема: Чтобы сохранить заранее заданную головоломку в примере с книгой, вы должны были использовать:

getPreferences(MODE_PRIVATE).edit().putString(PREF_PUZZLE,
toPuzzleString(puzzle)).commit();

toPuzzleString, очевидно, преобразует головоломку в строку (которая ранее хранилась в одномерном массиве)

Чтобы загрузить сохраненные настройки, чтобы опция «Продолжить» работала, вам пришлось использовать:

puz = getPreferences(MODE_PRIVATE).getString(PREF_PUZZLE,easyPuzzle);

НО это работает для предопределенной головоломки, хранящейся в закрытой финальной строке, называемой "easypuzzle" в начале game.class. Моя головоломка генерируется и сохраняется в одномерном массиве, когда пользователь нажимает «Новая игра». В результате я должен передать свою сгенерированную головоломку в качестве ссылки (это то, что я думаю), потому что я пытался передать ее так:

getPreferences(MODE_PRIVATE).getString(PREF_PUZZLE,toPuzzleString(puzzle));

и когда я закрываю игру или просто возвращаюсь и пытаюсь продолжить, моя игра генерирует для меня новую головоломку (или я так думаю) вместо загрузки сохраненной.

Что я делаю не так? Может ли кто-нибудь помочь мне, или скажите, как передать мою головоломку в качестве ссылки, как в C ++? Спасибо всем за ваше время, любая помощь будет оценена ....

1 Ответ

0 голосов
/ 15 марта 2012

Как уже упоминалось выше, ваша головоломка может быть неправильно сохранена в настройках.Чтобы проверить, измените метод getString (...) на что-то вроде этого:

String puzzleFromPrefs = getPreferences(MODE_PRIVATE).getString(PREF_PUZZLE, null);

if( null == puzzleFromPrefs ) {
  // Then you know that it wasn't saved correctly...
}

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

...