#java #android #методы #android_intent
public class CheatActivity extends Activity {
...
private boolean mAnswerIsTrue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cheat);
mAnswerIsTrue = getIntent().getBooleanExtra(EXTRA_ANSWER_IS_TRUE, false);
}
}
а именно часть:
mAnswerIsTrue = getIntent().getBooleanExtra(EXTRA_ANSWER_IS_TRUE, false);
Ответы
Ответ 1
Activity можно стартануть через интент. К примеру: Intent intent = new Intent(FirstActivity.this, CheatActivity.class); intent.putExtra(EXTRA_ANSWER_IS_TRUE, message); startActivity(intent); и метод getIntent() возвращает вам интент, которым была запущена данная активити. Далее из интента достается булевая переменная по ключу EXTRA_ANSWER_IS_TRUE Лучше всего вам объяснит официальная документацияОтвет 2
Немного теории: Intent - абстрактное описание выполняемой операции. Intent часто в сети описывают как намерение, для выполнения операции. И это описание довольно удачно из-за того, что Intent мб явным и неявным. Основные использование: В startActivity для запуска Activity. В broadcastIntent для отправки его любым заинтересованным компонентам BroadcastReceiver. В startService (Intent) или в bindService (Intent, ServiceConnection, int) для связи с фоновым сервисом. Наиболее значимое использование - это начало деятельности, где ее можно рассматривать как связь между действиями. Это в основном пассивная структура данных, содержащая абстрактное описание действия, которое необходимо выполнить. Итог: Intent это сущность, которая позволяет связать компоненты приложений, имеет возможность управлять ими и при этом может передать данные между компонентами, что у вас в примере и происходит. Ответ: Стартуем: Intent intent = new Intent(this, CheatActivity.class); intent.putExtra(EXTRA_ANSWER_IS_TRUE, mAnswerIsTrue); startActivity(intent); Намерение запустить с текущего класса -> CheatActivity. Положить в намерение intent (Bundle) по ключу EXTRA_ANSWER_IS_TRUE (String) значение mAnswerIsTrue(boolean). Получаем: mAnswerIsTrue = getIntent().getBooleanExtra(EXTRA_ANSWER_IS_TRUE, false); Мы пытаемся получить переменную mAnswerIsTrue(bool). Для этого мы получаем intent командой getIntent, достаем из intent(Bundle) командой getBooleanExtra бул переменную, в случае если ключ EXTRA_ANSWER_IS_TRUE не существует, то ставим ей дефолтное значение false.
Комментариев нет:
Отправить комментарий