diff --git a/README.md b/README.md
new file mode 100644
index 0000000..3ea5449
--- /dev/null
+++ b/README.md
@@ -0,0 +1,63 @@
+[![Android Studio version](https://img.shields.io/endpoint?url=https%3A%2F%2Fsicampus.ru%2Fgitea%2Fcore%2Fdocs%2Fraw%2Fbranch%2Fmain%2Fandroid-studio-label.json)](https://sicampus.ru/gitea/core/docs/src/branch/main/how-upload-project.md)
+
+# Практическая работа. Курс Kotlin. Практическая 3.8
+Данная практическая работа направлена на реализацию переходов между фрагментами
+
+## Дополнение XML разметки
+Первым делом необходимо дополнить разметку XML для корректного использования ссылок внутри Kotlin кода. Необходимые места для заполнения представлены ниже.
+
+Реализовать фрагмент для навигации внутри файла *activity_main.xml*. Фрагмент должен растягиваться по родительскому объекту, иметь уникальный идентификатор `@+id/nav_host_fragment` и обозначить параметр navGraph равный `nav_graph`
+```xml
+
+
+
+
+
+
+```
+
+Создать переход из третьего фрагмента в первый с уникальным идентификатором `@+id/action_thirdFragment_to_firstFragment` внутри файла *nav_graph.xml*
+```xml
+...
+
+
+
+...
+```
+
+## Дополнение Kotlin кода
+Далее необходимо написать дополнить код для взаимодействия с кнопками для перехода
+
+FirstFragment.kt
+```kotlin
+...
+override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ val fromFirstToSecond: Button = view.findViewById(R.id.fromFirstToSecond)
+ val fromFirstToThird: Button = view.findViewById(R.id.fromFirstToThird)
+
+ // TODO: Создать переход при клике на кнопку с первого на второй фрагмент. Подробнее смотреть в файле навигации!
+
+ // TODO: Создать переход при клике на кнопку с первого на третий фрагмент. Подробнее смотреть в файле навигации!
+}
+```
+
+ThirdFragment.kt
+```kotlin
+...
+override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ val fromThirdToFirst: Button = view.findViewById(R.id.fromThirdToFirst)
+
+ // TODO: Создать переход при клике на кнопку с третьего на первый фрагмент. Подробнее смотреть в файле навигации!
+}
+```
\ No newline at end of file
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 0ab9e22..6b6eb8b 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -1,4 +1,5 @@
plugins {
+ id("org.jetbrains.kotlin.android")
androidApplication
}
@@ -24,8 +25,18 @@ android {
sourceCompatibility = Version.Kotlin.javaSource
targetCompatibility = Version.Kotlin.javaSource
}
+ kotlinOptions {
+ jvmTarget = "17"
+ }
}
dependencies {
+ implementation("androidx.appcompat:appcompat:1.7.0")
+ implementation("com.google.android.material:material:1.12.0")
+ implementation("androidx.activity:activity:1.9.1")
+ implementation("androidx.constraintlayout:constraintlayout:2.1.4")
+ implementation("androidx.navigation:navigation-fragment-ktx:2.7.7")
+ implementation("androidx.navigation:navigation-ui-ktx:2.7.7")
+ implementation("androidx.core:core-ktx:1.13.1")
defaultLibrary()
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9ee5c40..4162890 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -10,7 +10,14 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
- android:theme="@style/Theme.Default"
- tools:targetApi="31" />
+ android:theme="@style/Theme.Design.Light.NoActionBar"
+ tools:targetApi="31">
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/ru/myitschool/work/FirstFragment.kt b/app/src/main/java/ru/myitschool/work/FirstFragment.kt
new file mode 100644
index 0000000..47fdbd6
--- /dev/null
+++ b/app/src/main/java/ru/myitschool/work/FirstFragment.kt
@@ -0,0 +1,29 @@
+package ru.myitschool.work
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.Button
+import androidx.navigation.fragment.findNavController
+
+class FirstFragment : Fragment() {
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ return inflater.inflate(R.layout.fragment_first, container, false)
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ val fromFirstToSecond: Button = view.findViewById(R.id.fromFirstToSecond)
+ val fromFirstToThird: Button = view.findViewById(R.id.fromFirstToThird)
+
+ // TODO: Создать переход при клике на кнопку с первого на второй фрагмент. Подробнее смотреть в файле навигации!
+
+ // TODO: Создать переход при клике на кнопку с первого на третий фрагмент. Подробнее смотреть в файле навигации!
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ru/myitschool/work/MainActivity.kt b/app/src/main/java/ru/myitschool/work/MainActivity.kt
new file mode 100644
index 0000000..a38b32e
--- /dev/null
+++ b/app/src/main/java/ru/myitschool/work/MainActivity.kt
@@ -0,0 +1,15 @@
+package ru.myitschool.work
+
+import android.os.Bundle
+import androidx.activity.enableEdgeToEdge
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+
+class MainActivity : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ enableEdgeToEdge()
+ setContentView(R.layout.activity_main)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ru/myitschool/work/SecondFragment.kt b/app/src/main/java/ru/myitschool/work/SecondFragment.kt
new file mode 100644
index 0000000..b21ed02
--- /dev/null
+++ b/app/src/main/java/ru/myitschool/work/SecondFragment.kt
@@ -0,0 +1,17 @@
+package ru.myitschool.work
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+
+class SecondFragment : Fragment() {
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ return inflater.inflate(R.layout.fragment_second, container, false)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ru/myitschool/work/ThirdFragment.kt b/app/src/main/java/ru/myitschool/work/ThirdFragment.kt
new file mode 100644
index 0000000..c1a9cac
--- /dev/null
+++ b/app/src/main/java/ru/myitschool/work/ThirdFragment.kt
@@ -0,0 +1,26 @@
+package ru.myitschool.work
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.Button
+import androidx.navigation.fragment.findNavController
+
+class ThirdFragment : Fragment() {
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ return inflater.inflate(R.layout.fragment_third, container, false)
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ val fromThirdToFirst: Button = view.findViewById(R.id.fromThirdToFirst)
+
+ // TODO: Создать переход при клике на кнопку с третьего на первый фрагмент. Подробнее смотреть в файле навигации!
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..b8fe79e
--- /dev/null
+++ b/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_first.xml b/app/src/main/res/layout/fragment_first.xml
new file mode 100644
index 0000000..4b575a5
--- /dev/null
+++ b/app/src/main/res/layout/fragment_first.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_second.xml b/app/src/main/res/layout/fragment_second.xml
new file mode 100644
index 0000000..2a82ca7
--- /dev/null
+++ b/app/src/main/res/layout/fragment_second.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_third.xml b/app/src/main/res/layout/fragment_third.xml
new file mode 100644
index 0000000..e9cbf8e
--- /dev/null
+++ b/app/src/main/res/layout/fragment_third.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml
new file mode 100644
index 0000000..5573a57
--- /dev/null
+++ b/app/src/main/res/navigation/nav_graph.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 96034ac..9f0ffe2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,4 @@
Work
+ Hello blank fragment
\ No newline at end of file
diff --git a/app/src/main/res/xml/data_extraction_rules.xml b/app/src/main/res/xml/data_extraction_rules.xml
index 9ee9997..6cebe05 100644
--- a/app/src/main/res/xml/data_extraction_rules.xml
+++ b/app/src/main/res/xml/data_extraction_rules.xml
@@ -5,7 +5,7 @@
-->
-
diff --git a/build.gradle.kts b/build.gradle.kts
index 860f2c8..3e2b590 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -2,4 +2,5 @@
plugins {
androidApplication version Version.gradle apply false
kotlinJvm version Version.Kotlin.language apply false
+ id("org.jetbrains.kotlin.android") version "2.0.0" apply false
}
\ No newline at end of file