Кашина_РМП_ЛБ15_3
.docxМинистерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования
«Владимирский государственный университет
имени Александра Григорьевича и Николая Григорьевича Столетовых» (ВлГУ)
Колледж инновационных технологий и предпринимательства
КАФЕДРА ФИЗИКИ И ПРИКЛАДНОЙ МАТЕМАТИКИ
Лабораторная работа № 15_3
по МДК 01.03 «Разработка мобильных приложений»
на тему: «ViewPager в Андроид »
Выполнил
студент группы ИПсп-123
Кашина Д. А.
Принял
Красильщикова В.В.
Владимир, 2026 г.
Цель работы: получить практические навыки работы с ViewPager в AndroidStudio.
Ход работы:
MainActivity.java
package com.example.viewpager; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import androidx.viewpager.widget.ViewPager; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPagerAdapter; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private ViewPager viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Настраиваем Toolbar Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); // Показываем заголовок if (getSupportActionBar() != null) { getSupportActionBar().setTitle("Фрукты"); } viewPager = findViewById(R.id.pager); setupViewPager(viewPager); } private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); adapter.addFragment(new FragmentViewPager().newInstance("Яблоко", R.drawable.apple)); adapter.addFragment(new FragmentViewPager().newInstance("Апельсин", R.drawable.orange)); adapter.addFragment(new FragmentViewPager().newInstance("Виноград", R.drawable.grape)); adapter.addFragment(new FragmentViewPager().newInstance("Банан", R.drawable.banan)); viewPager.setAdapter(adapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.action_info) { showDeveloperInfo(); return true; } return super.onOptionsItemSelected(item); } private void showDeveloperInfo() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("О разработчике") .setMessage("Автор: Кашина Д. А.\nГруппа: ИПсп-123\nЛабораторная работа №15_3") .setPositiveButton("ОК", null) .show(); } static class ViewPagerAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); public ViewPagerAdapter(FragmentManager manager) { super(manager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } public void addFragment(Fragment fragment) { mFragmentList.add(fragment); } } }
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- Добавляем Toolbar для меню --> <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> <androidx.viewpager.widget.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" /> </LinearLayout>
FragmentViewPager.java
package com.example.viewpager; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import androidx.fragment.app.Fragment; public class FragmentViewPager extends Fragment { private static final String ARG_TITLE = "title"; private static final String ARG_IMAGE = "image"; public FragmentViewPager() { // Required empty public constructor } public static FragmentViewPager newInstance(String title, int imageResId) { FragmentViewPager fragment = new FragmentViewPager(); Bundle args = new Bundle(); args.putString(ARG_TITLE, title); args.putInt(ARG_IMAGE, imageResId); fragment.setArguments(args); return fragment; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_main, container, false); String title = getArguments().getString(ARG_TITLE); int imageResId = getArguments().getInt(ARG_IMAGE); TextView tvTitle = view.findViewById(R.id.title); ImageView ivImage = view.findViewById(R.id.image); tvTitle.setText(title); ivImage.setImageResource(imageResId); return view; } }
Результат работы:
Вывод: в ходе лабораторной работы были получены практические навыки работы с ViewPager в AndroidStudio.
