engineerklub | Дата: Четверг, 24.08.2023, 05:55 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 28530
Статус: Offline
| Программирование мобильных устройств (часть 2) Задание 2
Тип работы: Работа Лабораторная Сдано в учебном заведении: ДО СИБГУТИ
Описание: Задание 2: Создайте приложение из трех классов (Условно: A, B и С). Из класса А запускаются классы В и С, по завершению своей работы классы В и С возвращают строку в класс А, которая выводится на экран.
Интерфейс класса А содержит: Элемент RadioButton определяющий запускаемый класс (В или С). Кнопку которая непосредственно запускает выбранный класс. Тектовое поле результатов запука, которая содержит надпись о том какой класс был ранее вызван и какую строку он возвратил.
Из класса A по нажатию кнопки вызывается класс В или С в зависимости от выбора RadioButton. Классы В и С каждый имеют тектовое поле для ввода строки (которая будет возварщена в класс А) и одну кнопку, которая завершает работу данного класса работу и возвращается в класс А. Намерение Класс Intent представляет собой объект обмена сообщениями, с помощью которого можно запросить выполнение действия у компонента другого приложения. Несмотря на то, что объекты Intent упрощают обмен данными между компонентами по нескольким аспектам, в основном они используются для запуска операции: Компонент Activity представляет собой один экран в приложении. Для запуска нового экземпляра компонента Activity необходимо передать объект Intent методу startActivity(). Объект Intent описывает операцию, которую требуется запустить, а также содержит все остальные необходимые данные. Если после завершения операции от нее требуется получить результат, вызовите метод startActivityForResult(). Ваша операция получит результат в виде отдельного объекта Intent в обратном вызове метода onActivityResult() операции.
Для коректного запуска классов В и С необходимо добавить в файл AndroidManifest.xml следующие разрешения (в раздел Application). Если этого не сделать, то при попытке вызова указанных классов может сгенерироваться ошибка.
<activity android:name=".B"></activity> <activity android:name=".C"></activity>
Элементы кода Запуск и ожидание результата Intent intent = new Intent(this, B.class);//Создается намерение запустить класс startActivityForResult(intent, 1);//Намерение отправляется в операционную систему
Здесь "B" - название запускаемого класса, число "1" номер вызова который будет возвращен в onActivityResult как параметр requestCode. По этому номеру можно будет понять какой класс возвратил ответ. В основном классе (классе A) нужно добавить обработчик
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (data == null) {return;} // если намерение не возвратилось, то выходим String str = data.getStringExtra("MyString");//Извлекаем переданную строку MyString tvName.setText("Returned string:" + str);//Выводим строку на экран }
Завершение класса и возврат в вызываемый класс: Это пишется в классе B и С.
Intent intent = new Intent(); //Создается класс намерения intent.putExtra("MyString", etName.getText().toString()); //заполняем намерение одной строкой setResult(RESULT_OK, intent); //добавляем в намерение параметр, означающий успешность окончания работы вызванного класса finish(); // завершаем работу класса и возвращаемся в дочерний класс
СКАЧАТЬ
|
|
| |