Как я могу поделиться переменными между классами?

1

Скажем, я делаю что-то вроде викторины, и у меня есть счетчик, чтобы показать количество вопросов, на которые был дан правильный ответ. Когда правильно задан один вопрос, и отображается новый экран (Activity), как переносить номер на следующий экран?

Теги:
variables
android-2.2-froyo

4 ответа

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

Когда вы говорите о экранах, вы имеете в виду "Действия"? Тогда вы, вероятно, захотите передать их через дополнительные услуги.

Мероприятие 1:

    int score;

    ...
    Intent Intent = new Intent(...);
    intent.putExtra("score_key", score);
    startActivity(intent);

onCreate() 2 onCreate():

    int score;
    ...

    Bundle extras = getIntent().getExtras();

    // Read the extras data if it available.
    if (extras != null)
    {
        score = extras.getInt("score_key");
    }
  • 0
    Вы можете заменить "Score_key" на любую строку. Это ключ, чтобы определить, что дополнительно. Просто убедитесь, что ваши две клавиши совпадают, когда вы вводите и устанавливаете для одних и тех же данных.
1

Вы можете отправлять номера, строки и т.д. В комплекте с вашими намерениями.

Bundle b = new Bundle();
b.putInt("testScore", numCorrect);
Intent i = new Intent(this, MyClass.class);
i.putExtras(b);
startActivity(intent)

вы также можете добавить StringArrays и несколько других простых vars

0

Хорошей практикой для хранения переменных в Activitiys является использование собственной реализации класса приложений.

public class MyApp extends android.app.Application {

private String myVariable;

public String getMyVariable() {
    return myVariable;
}

public void setMyVariable(String var) {
    this.myVariable = var;
}

Добавьте новый класс в Manifest.xml внутри тега приложения:

<application android:name="MyApp" android:icon="@drawable/icon" android:label="@string/app_name">

Теперь вы можете манипулировать переменной в каждой Деятельности следующим образом:

MyApp ctx = (MyApp)getApplicationContext();
String var = ctx.getMyVariable();
0

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

public class mainClass 
{
    private static int sharedVariable = 0;


    public static int getSharedVariable()
    {
          return sharedVariable;
    }
}

Из другого класса/активности вы можете получить к нему доступ напрямую, используя имя класса и. (точка). например mainClass.getSharedVariable();

Ещё вопросы

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