#java #android #android-studio #android-intent
#Ява #Android #android-студия #android-намерение
Вопрос:
поэтому я пытаюсь создать приложение для Android, которое случайным образом нажимает кнопку на экране, и пользователь должен нажать кнопку, чтобы получить лучший результат, но есть таймер, и когда он достигает 0, он должен начать новое действие, которое показывает окончательный результат.
Я реализовал таймер обратного отсчета, который при onFinish()
запуске запускает новое действие с намерением, которое также отправит переменную оценки в новое действие.
Дело в том, что все это хорошо работает, за исключением того, что при использовании toast.makeText
я вижу, что переданная переменная равна нулю.
вот мой код для таймера обратного отсчета
new CountDownTimer(timeleftinmilliseconds, 1000) { public void onTick(long millisUntilFinished) { countdownText.setText(" time left : " millisUntilFinished / 1000); timeleftinmilliseconds=millisUntilFinished; } public void onFinish() { Intent finalintent; finalintent = new Intent(PlayTime.this,ScoreScreen.class); finalintent.putExtra("key",score); startActivity(finalintent); } }.start();
и это код из действия на экране оценки, который получает оценку (теперь сохранен в предыдущей версии).
void Capture(){ Bundle bundle = getIntent().getExtras(); String previousscore = bundle.getString("key"); Toast.makeText(getApplicationContext(), "" previousscore, Toast.LENGTH_SHORT).show(); }
спасибо вам за любую помощь!
Комментарии:
1. Ты пробовал
bundle.getStringExtra("key")
вместо этого?2. Какого типа ваша
score
переменная? Это аString
?
Ответ №1:
Вы получаете в виде строки, но передаете целое число в виде балла . Поэтому вам нужно получить целое число .измените код таким образом , он будет работать.
Bundle bundle = getIntent().getExtras(); int previousscore = bundle.getInt("key"); Toast.makeText(getApplicationContext(), "" previousscore, Toast.LENGTH_SHORT).show();
Ответ №2:
вы передали данные из intent и пытаетесь получить данные из пакета. это невозможно, вы должны использовать намерение для получения данных. Вы можете использовать его вот так.
Intent intent = getIntent(); int previousscore = intent.getIntExtra(“key”); Toast.makeText(getApplicationContext(), "" previousscore, Toast.LENGTH_SHORT).show();