Как сохранить состояние переменной в приложении для Android и использовать его

1

У меня есть приложение для Android, которое было построено на затмении. То, что я сейчас делаю, задает множество вопросов в xml файле случайным образом, чтобы спросить. Файл Xml выглядит так:

<item>
    <ques></ques>
    <option1></option1>
    <option2></option2>
    <option3></option3>
    <ans></ans>
    <level>1</level>
</item>
<item>
    <ques></ques>
    <option1></option1>
    <option2></option2>
    <option3></option3>
    <ans></ans>
    <level>1</level>
</item>
<item>
    <ques></ques>
    <option1></option1>
    <option2></option2>
    <option3></option3>
    <ans></ans>
    <level>2</level>
</item>

скоро....

Прямо сейчас я выбираю вопрос из уровня один случайным образом. Например, есть 50 вопросов на уровне 1 и 50 уровня 2. Я хочу сейчас выбрать вопрос. Как начинать сверху вниз. Например, если пользователь A регистрируется в игре, ему задают вопрос a и b с уровня 1. Затем он закрывает игру и регистрируется снова, чтобы теперь видеть c и d.

Моя проблема заключается в том, как сохранить это состояние в андроиде? Есть ли простой способ сделать это?

Теги:

4 ответа

7
Лучший ответ

То, что вы можете сделать, - это для каждого уровня пронумеровать

Для уровня 1 задайте вопрос переменной int, чтобы отслеживать вопрос, на котором пользователь включен. Вы могли бы

int questionNumber;

в вашем методе объявить по каждому вопросу, который пользователь получает

 questionNumber++;

Теперь, когда игрок покидает действие или выходит из приложения.

Поместите номер вопроса в общее предпочтение, как это.

  SharedPreferences app_preferences = 
        PreferenceManager.getDefaultSharedPreferences(this);

 SharedPreferences.Editor editor = app_preferences.edit();
    editor.putInt("questionNumber", questionNumber);
    editor.commit(); // Very important

Теперь, чтобы вытащить номер, просто используйте..

  SharedPreferences app_preferences = 
        PreferenceManager.getDefaultSharedPreferences(this);

    // Get the value for the run counter
    questionNumber = app_preferences.getInt("questionNumber", 0);// The 0 is there for if the user hastn played before it is set to 0 automatically or you can set it to 1

РЕДАКТИРОВАТЬ:

Также вы можете иметь переменную, которая отслеживает уровень, на котором пользователь находится, например

int userLevel;

И просто сохраните его для общих предпочтений, как вы это делали раньше.

1

Используйте SharedPreferences для хранения и получения значений... очень проста в использовании. (Http://developer.android.com/reference/android/content/SharedPreferences.html).

1

Самый простой способ - использовать общие настройки. См. Раздел руководства " Хранение данных" для указателей на соответствующую документацию.

0

Храните его на устройстве Android: http://developer.android.com/guide/topics/data/data-storage.html.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню