Открыть новое действие с динамическим значением

#android #android-activity

#Android #android-activity

Вопрос:

У меня новая проблема. Я создаю таймер Android. В основном действии вы можете выбрать, как долго будет работать таймер. Если вы выбрали значение, должно появиться действие таймера. Мой вопрос прост: как? Я не знаю, как действие таймера может узнать, как долго должен работать таймер. Кто-нибудь может мне сказать, пожалуйста?

Ответ №1:

В намерении, которое вы используете для запуска нового действия, поставьте дополнительный, который указывает количество времени, на которое должен быть установлен таймер. Допустим, вы намереваетесь запустить это вызываемое действие таймера timeIntent , и количество времени, на которое вы хотите установить таймер, указано в переменной called amountOfTime , вы бы сделали следующее:

 timerIntent.putExtra("time amount", amountOfTime);
startActivity(timerIntent);
  

Одно ваше действие в таймере, вы можете получить эту сумму, позвонив getIntent() и getExtra() вот так:

 Intent myIntent = getIntent();
int timeAmount = 0;
if(myIntent!= null amp;amp; myIntent.hasExtra("time amount"){
  timeAmount = myIntent.getIntExtra("time amount", 0);
}
  

Комментарии:

1. Спасибо! Этот ответ работает. Приведенные ниже ответы тоже хороши, но вы были первыми.

Ответ №2:

В вашем основном действии вы захотите добавить дополнительное значение в свое намерение для использования вашим действием таймера:

 Intent i = new Intent(this, TimerActivity.class);
i.putExtra("timer_length", 3000);
startActivity(i);
  

Затем в вашем действии по таймеру вы получите дополнительные функции Intent и сделаете то, что вам нужно, с переданным значением:

 public void onCreate(Bundle b) {
    super.onCreate(b);
    setContentView(R.layout.timer_layout);

    long length = getIntent().getLongExtra("timer_length", -1);
    if (length == -1) 
        //do failure
    else
        //do what you need with the timer length value
}