Есть активити1, которое передает в активити2 для счетчика количество миллисекунд. Количество миллисекунд может быть разным (в зависимости от того, какая кнопка нажата на активити1).Счетчик в активити2 должен принимать эти значение миллисекунд.
В активити1 код для передачи данных такой:
int SEKOND;
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button_dif
SEKOND = 5000;
Intent intent = new Intent(this,Activity2.class);
intent.putExtra("sekondDif",SEKOND);
startActivity(intent);
break;
case R.id.button_is:
SEKOND = 50000;
Intent intent1 = new Intent(this,Activity2.class);
intent1.putExtra("sekondIs",SEKOND);
startActivity(intent1);
break;
}
}
В ативити2 код получения интентов такой:
Bundle extras = getIntent().getExtras();
int id0 = extras.getInt("sekondDif");
int id1 = extras.getInt("sekondIs");
Т.е. число передано и извлечено.
Далее есть счетчик, вместо id которого нужно поставить либо данные из id0 либо из id1, в зависимости от того, какой интент был получен:
new CountDownTimer(id, 1000) {}
Сама логика такая: на активити1 есть разные button. Если кликнуть по button1, то при переходе на активити2 в счетчике должно быть выставлено одно количество миллисекунд, если кликнуть на активтити1 по button2, то в счетчике должно быть выставлено другое количество миллисекунд.
Помогите, пожалуйста, связать эти условия (секунды счетчика на втором активити и выбор кнопки на первом активити ).
Ответ
Если ваша проблема в том, что вы не знаете во второй активити какое именно значение было передано из первой, то вы можете, при вытаскивании данных из интента указывать значение по умолчанию для отсутствующих данных и проверяя ваши переменные второй активити на предмет равенства значения по умолчанию вызывать метод нужный передавая туда нужную переменную.
Bundle extras = getIntent().getExtras();
//зададим -1 как значение по умолчанию.
//им будет инициализированна переменная, если в Bundle нет искомого ключа.
//если этот аргумент не указать и значения по ключу нет, то присвоится 0
int id0 = extras.getInt("sekondDif", -1);
int id1 = extras.getInt("sekondIs", -1);
if(id0 != -1)
{ //значит получено "sekondDif" }
else if(id1 != -1)
{ //значит получено "sekondIs" }
Также можно проверять есть ли определённый ключ в Bundle методом contains(String key)
Комментариев нет:
Отправить комментарий