Скажем, я делаю что-то вроде викторины, и у меня есть счетчик, чтобы показать количество вопросов, на которые был дан ответ. Когда правильно задан один вопрос, и отображается новый экран (Activity), как переносить номер на следующий экран?Как распределить переменные между классами?
ответ
Когда вы говорите, экраны вы имеете в виду «Действия»? Тогда вы, вероятно, захотите передать их через дополнительные услуги.
активность 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");
}
Вы можете отправить число, строку и т.д. в связке с вашим намерением.
Bundle b = new Bundle();
b.putInt("testScore", numCorrect);
Intent i = new Intent(this, MyClass.class);
i.putExtras(b);
startActivity(intent)
вы также можете поместить StringArrays и несколько других простого ВАРА
Одним из таким образом, вы можете поделиться своими данными между всем проектом,
public class mainClass
{
private static int sharedVariable = 0;
public static int getSharedVariable()
{
return sharedVariable;
}
}
С другого классом/деятельностью, вы может получить к нему доступ напрямую, используя имя класса и. (точка). например mainClass.getSharedVariable();
Хорошая практика для хранения переменных в 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();
вы можете заменить " score_key "с любой строкой. Это ключ, чтобы идентифицировать это дополнительно. Просто убедитесь, что ваши два ключа совпадают, когда вы кладете и устанавливаете одни и те же данные. – triad