Всем доброго времени суток!
Вопрос скорее больше по теории Java, но надеюсь сильно плеваться не будете
Чтобы передать параметр из Activity
A в Activity
B я могу пойти двумя путями.
Путь 1
создаю дополнительный класс, в котором объявляю все мои передаваемые переменные:
public class GLOBAL {
public static Integer mInt=0;
}
и когда из
A открываю
B, то в
А:
GLOBAL.mInt=5, а в
B когда надо, то считываю это значение
GLOBAL.mInt
Путь 2
В
А перед открытием
B:
Bundle mBundleId = new Bundle();
mBundleId.putInt("mId", 5);
Intent mIntent = new Intent(this, B.class);
mIntent.putExtras(mBundleId);
startActivityForResult(mIntent, 1);
в
B чтобы считать значение:
Integer mId = (this.getIntent().getExtras()).getInt("mId");
Какой из вариантов более правильный и почему?
12.09.11 10:10: Перенесено из 'Java'
Здравствуйте, skyred, Вы писали:
S>Всем доброго времени суток!
S>Вопрос скорее больше по теории Java, но надеюсь сильно плеваться не будете
S>Чтобы передать параметр из Activity A в Activity B я могу пойти двумя путями.
S>Путь 1
S>создаю дополнительный класс, в котором объявляю все мои передаваемые переменные:
S>public class GLOBAL {
S> public static Integer mInt=0;
S>}
S>и когда из A открываю B, то в А: GLOBAL.mInt=5, а в B когда надо, то считываю это значение GLOBAL.mInt
S>Путь 2
S>В А перед открытием B:
S>Bundle mBundleId = new Bundle();
S>mBundleId.putInt("mId", 5);
S>Intent mIntent = new Intent(this, B.class);
S>mIntent.putExtras(mBundleId);
S>startActivityForResult(mIntent, 1);
S>в B чтобы считать значение:
S>Integer mId = (this.getIntent().getExtras()).getInt("mId");
S>Какой из вариантов более правильный и почему?
Через екстраз, почему ? потому, что это динамичность!!! все что через глобал — статичность, представь, что ты выпускаешь вторую версию программы и нужно дописать новые передаваемые переменные, или модифицировать, с екстрахами ты модифицируешь intent call (только в одном конктетном месте), что в принципе ожидаемо во втором глобальный класс для каждого из вызовов!!!,
Здравствуйте, Sergii Zagriichuk, Вы писали:
>Через екстраз, почему ? потому, что это динамичность!!! все что через глобал — статичность, представь, что ты выпускаешь вторую версию программы и нужно дописать новые передаваемые переменные, или модифицировать, с екстрахами ты модифицируешь intent call (только в одном конктетном месте), что в принципе ожидаемо во втором глобальный класс для каждого из вызовов!!!,
Ну есть ещё тема с синглетонами ...
Ответы есть тут
Здравствуйте, skyred, Вы писали:
S>Здравствуйте, Sergii Zagriichuk, Вы писали:
>>Через екстраз, почему ? потому, что это динамичность!!! все что через глобал — статичность, представь, что ты выпускаешь вторую версию программы и нужно дописать новые передаваемые переменные, или модифицировать, с екстрахами ты модифицируешь intent call (только в одном конктетном месте), что в принципе ожидаемо во втором глобальный класс для каждого из вызовов!!!,
S>Ну есть ещё тема с синглетонами ... Ответы есть тут
О синглетонах и почему их лучше не юзать прочитайте на stackoverflow линка под рукой нету, но именно под андроид она там обсуждалась!