2012-02-25 2 views
1

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

ответ

5

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

активность 1:

int score; 

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

активности 2-х onCreate():

int score; 
    ... 

    Bundle extras = getIntent().getExtras(); 

    // Read the extras data if it's available. 
    if (extras != null) 
    { 
     score = extras.getInt("score_key"); 
    } 
+0

вы можете заменить " score_key "с любой строкой. Это ключ, чтобы идентифицировать это дополнительно. Просто убедитесь, что ваши два ключа совпадают, когда вы кладете и устанавливаете одни и те же данные. – triad

1

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

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

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

0

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

public class mainClass 
{ 
    private static int sharedVariable = 0; 


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

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

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();