Кашина_РМП_ЛБ17_6
.docxfragment_sort.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:padding="8dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="📊 Сортировка по цене" android:textSize="22sp" android:textStyle="bold"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="8dp"> <Button android:id="@+id/btnSortAsc" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginEnd="4dp" android:layout_weight="1" android:text="↑ По возрастанию" /> <Button android:id="@+id/btnSortDesc" android:layout_width="0dp" android:layout_height="match_parent" android:layout_marginStart="4dp" android:layout_weight="1" android:text="↓ По убыванию" /> </LinearLayout> <TextView android:id="@+id/tvCountSort" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="📊 Нажмите на кнопку сортировки" android:textSize="14sp" android:textColor="#666666" android:layout_marginTop="8dp"/> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerViewSort" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="8dp" /> </LinearLayout>
fragment_stats.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:padding="8dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="📈 Статистика" android:textSize="22sp" android:textStyle="bold"/> <TextView android:id="@+id/tvMaxCost" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Загрузка..." android:textSize="16sp" android:layout_marginTop="8dp"/> <TextView android:id="@+id/tvAverageCost" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Загрузка..." android:textSize="16sp" android:layout_marginTop="4dp"/> <Button android:id="@+id/btnShowLessThanAverage" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Показать товары дешевле средней цены" android:layout_marginTop="12dp"/> <TextView android:id="@+id/tvCountLessThanAvg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="📊 Нажмите на кнопку" android:textSize="14sp" android:textColor="#666666" android:layout_marginTop="8dp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="📦 Результат:" android:textSize="16sp" android:textStyle="bold" android:layout_marginTop="12dp"/> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerViewLessThanAvg" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="4dp"/> </LinearLayout>
item_product.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="4dp" app:cardCornerRadius="8dp" app:cardElevation="2dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="12dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tvName" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="18sp" android:textStyle="bold" android:textColor="#333333"/> <ImageButton android:id="@+id/btnEdit" android:layout_width="40dp" android:layout_height="40dp" android:src="@android:drawable/ic_menu_edit" android:background="?attr/selectableItemBackgroundBorderless" android:contentDescription="Редактировать"/> <ImageButton android:id="@+id/btnDelete" android:layout_width="40dp" android:layout_height="40dp" android:src="@android:drawable/ic_menu_delete" android:background="?attr/selectableItemBackgroundBorderless" android:contentDescription="Удалить"/> </LinearLayout> <TextView android:id="@+id/tvManufacturer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="14sp" android:layout_marginTop="4dp"/> <TextView android:id="@+id/tvCost" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="14sp" android:textColor="#E91E63" android:layout_marginTop="2dp"/> <TextView android:id="@+id/tvSupplierPrice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="12sp" android:textColor="#757575"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="4dp"> <TextView android:id="@+id/tvUnit" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="12sp" android:textColor="#757575"/> <TextView android:id="@+id/tvDate" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="12sp" android:textColor="#757575" android:gravity="end"/> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView>
item_product_simple.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="4dp" app:cardCornerRadius="8dp" app:cardElevation="2dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="12dp"> <TextView android:id="@+id/tvName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18sp" android:textStyle="bold" android:textColor="#333333"/> <TextView android:id="@+id/tvManufacturer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="14sp" android:layout_marginTop="4dp"/> <TextView android:id="@+id/tvCost" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="14sp" android:textColor="#E91E63" android:layout_marginTop="2dp"/> <TextView android:id="@+id/tvSupplierPrice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="12sp" android:textColor="#757575"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="4dp"> <TextView android:id="@+id/tvUnit" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="12sp" android:textColor="#757575"/> <TextView android:id="@+id/tvDate" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="12sp" android:textColor="#757575" android:gravity="end"/> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView>
bottom_nav_menu.xml
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/nav_list" android:icon="@android:drawable/ic_menu_view" android:title="Список" /> <item android:id="@+id/nav_sort" android:icon="@android:drawable/ic_menu_sort_by_size" android:title="Сортировка" /> <item android:id="@+id/nav_group" android:icon="@android:drawable/ic_menu_agenda" android:title="Группы" /> <item android:id="@+id/nav_stats" android:icon="@android:drawable/ic_menu_info_details" android:title="Статистика" /> <item android:id="@+id/nav_filter" android:icon="@android:drawable/ic_menu_search" android:title="Фильтр" /> </menu>
Результат работы программы:
Вывод: в ходе лабораторной работы были получены навыки реализации собственного мобильного приложения в андроид.
