Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Кашина_РМП_ЛБ15_5

.docx
Скачиваний:
0
Добавлен:
22.09.2026
Размер:
120 Кб
Скачать
☆

Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Владимирский государственный университет

имени Александра Григорьевича и Николая Григорьевича Столетовых» (ВлГУ)

Колледж инновационных технологий и предпринимательства

КАФЕДРА ФИЗИКИ И ПРИКЛАДНОЙ МАТЕМАТИКИ

Лабораторная работа № 15_5

по МДК 01.03 «Разработка мобильных приложений»

на тему: «Передача данных в диалоговые окна»

Выполнил

студент группы ИПсп-123

Кашина Д. А.

Принял

Красильщикова В.В.

Владимир, 2026 г.

Цель работы: получить практические навыки работы с передачей данных в диалоговые окна для Android.

Ход работы:

1 задание: Создание собственного диалогового окна

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center"> <Button android:id="@+id/btnShowDialog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Диалог" android:onClick="showDialog" /> </LinearLayout>

MainActivity. java

package com.example.dialogapp; import android.os.Bundle; import android.view.View; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void showDialog(View v) { CustomDialogFragment dialog = new CustomDialogFragment(); dialog.show(getSupportFragmentManager(), "custom_dialog"); } }

CustomDialogFragment.java

package com.example.dialogapp; import android.app.AlertDialog; import android.app.Dialog; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.fragment.app.DialogFragment; public class CustomDialogFragment extends DialogFragment { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("Диалоговое окно") .setIcon(android.R.drawable.ic_dialog_alert) .setView(R.layout.dialog) // добавляем кастомную разметку .setPositiveButton("OK", null) .setNegativeButton("Отмена", null); return builder.create(); } }

dialog.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="20dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Кашина Д. ИПсп-123" android:textSize="20sp" android:textStyle="bold" android:layout_gravity="center"/> </LinearLayout>

2 задание: Передача данных в диалоговые окна

MainActivity.java

package com.example.laba15_5; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import androidx.appcompat.app.AppCompatActivity; import java.util.ArrayList; public class MainActivity extends AppCompatActivity implements Removable { private ArrayAdapter<String> adapter; private ArrayList<String> fructList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView fructListView = findViewById(R.id.FructList); fructList = new ArrayList<>(); fructList.add("Яблоко"); fructList.add("Банан"); fructList.add("Груша"); fructList.add("Инжирная хурма"); fructList.add("Виноград"); fructList.add("Абрикос"); fructList.add("Персик"); adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, fructList); fructListView.setAdapter(adapter); fructListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String selectedFruct = adapter.getItem(position); CustomDialogFragment dialog = new CustomDialogFragment(); Bundle args = new Bundle(); args.putString("Fruct", selectedFruct); dialog.setArguments(args); dialog.show(getSupportFragmentManager(), "custom"); } }); } @Override public void remove(String name) { fructList.remove(name); adapter.notifyDataSetChanged(); } }

CustomDialogFragment.java

package com.example.laba15_5; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.fragment.app.DialogFragment; public class CustomDialogFragment extends DialogFragment { private Removable removable; @Override public void onAttach(@NonNull Context context) { super.onAttach(context); removable = (Removable) context; } @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final String fruct = getArguments().getString("Fruct"); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); return builder .setTitle("Диалоговое окно") .setIcon(android.R.drawable.ic_dialog_alert) .setMessage("Вы хотите удалить " + fruct + "?") .setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { removable.remove(fruct); } }) .setNegativeButton("Отмена", null) .create(); } }

Интерфейс Removable.java

package com.example.laba15_5; public interface Removable{ void remove(String name); }

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ListView android:id="@+id/FructList" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> <!-- Информация о выполнившем работу --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="16dp" android:gravity="center"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Выполнила: Кашина Д." android:textSize="16sp" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Группа: ИПсп-123" android:textSize="16sp" android:textStyle="bold" android:layout_marginTop="4dp" /> </LinearLayout> </LinearLayout>

Результат выполнения работы

Задание 1

Задание 2

Вывод: в ходе лабораторной работы были получены практические навыки работы с передачей данных в диалоговые окна для Android.