diff --git a/app/build.gradle b/app/build.gradle
index 41da73f..a595786 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -15,6 +15,9 @@ android {
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
+ androidExtensions {
+ experimental = true
+ }
buildTypes {
release {
@@ -30,6 +33,7 @@ dependencies {
implementation 'androidx.core:core-ktx:1.3.1'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+ implementation 'androidx.recyclerview:recyclerview:1.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 178d0a7..fd72016 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -16,6 +16,9 @@
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/example/androidpractice2020/Film.kt b/app/src/main/java/com/example/androidpractice2020/Film.kt
new file mode 100644
index 0000000..50cdad0
--- /dev/null
+++ b/app/src/main/java/com/example/androidpractice2020/Film.kt
@@ -0,0 +1,6 @@
+package com.example.androidpractice2020
+
+
+data class Film(
+ val id: Int, val name: String, val text: String, var imageView: Int
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/example/androidpractice2020/FilmAdapter.kt b/app/src/main/java/com/example/androidpractice2020/FilmAdapter.kt
new file mode 100644
index 0000000..fd15c90
--- /dev/null
+++ b/app/src/main/java/com/example/androidpractice2020/FilmAdapter.kt
@@ -0,0 +1,14 @@
+package com.example.androidpractice2020
+
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+class FilmAdapter(
+ private var list: List,
+ private var itemClick: (Int) -> Unit
+) : RecyclerView.Adapter() {
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): FilmHolder = FilmHolder.create(parent, itemClick)
+
+ override fun onBindViewHolder(holder: FilmHolder, position: Int) = holder.bind(list[position])
+
+ override fun getItemCount(): Int = list.size
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/androidpractice2020/FilmHolder.kt b/app/src/main/java/com/example/androidpractice2020/FilmHolder.kt
new file mode 100644
index 0000000..1be1a2f
--- /dev/null
+++ b/app/src/main/java/com/example/androidpractice2020/FilmHolder.kt
@@ -0,0 +1,29 @@
+package com.example.androidpractice2020
+
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+import kotlinx.android.extensions.LayoutContainer
+import kotlinx.android.synthetic.main.film_item.*
+
+class FilmHolder(
+ override val containerView: View,
+ var itemClick: (Int) -> Unit
+) : RecyclerView.ViewHolder(containerView), LayoutContainer {
+ fun bind(film: Film) {
+ film_name.text = film.name
+ film_image.setImageResource(film.imageView)
+ itemView.setOnClickListener {
+ itemClick(film.id)
+ }
+ }
+
+ companion object {
+ fun create(parent: ViewGroup, itemClick: (Int) -> Unit): FilmHolder =
+ FilmHolder(
+ LayoutInflater.from(parent.context).inflate(R.layout.film_item, parent, false),
+ itemClick
+ )
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/androidpractice2020/FilmRepository.kt b/app/src/main/java/com/example/androidpractice2020/FilmRepository.kt
new file mode 100644
index 0000000..f7e602c
--- /dev/null
+++ b/app/src/main/java/com/example/androidpractice2020/FilmRepository.kt
@@ -0,0 +1,13 @@
+package com.example.androidpractice2020
+
+class FilmRepository {
+ val arraylist = listOf(
+ Film(0, "Довод", "Главный герой — секретный агент, который проходит жестокий тест на надежность и присоединяется к невероятной миссии.",R.drawable.dovod),
+ Film(1,"Бэтмен", "По словам автора, это будет самая молодая версия героя, который прошёл через личную трагедию, и всё, что он делает, будет его реакцией на это.", R.drawable.batman),
+ Film(2, "Джокер", "Американский психологический триллер режиссёра Тодда Филлипса по сценарию, написанному Филлипсом совместно со Скоттом Сильвером.", R.drawable.joker)
+ )
+
+ fun find(id: Int): Film {
+ return this.arraylist[id]
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/androidpractice2020/InfoFilmActivity.kt b/app/src/main/java/com/example/androidpractice2020/InfoFilmActivity.kt
new file mode 100644
index 0000000..8c0aa57
--- /dev/null
+++ b/app/src/main/java/com/example/androidpractice2020/InfoFilmActivity.kt
@@ -0,0 +1,20 @@
+package com.example.androidpractice2020
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import kotlinx.android.synthetic.main.film_info.*
+
+class InfoFilmActivity : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.film_info)
+ val id = intent.extras?.getInt("id")
+ val film = id?.let { FilmRepository().find(it) }
+ if (film != null) {
+ imageView.setImageResource(film.imageView)
+ }
+ textView6.text = id.toString()
+ textView3.text = film?.name
+ textView5.text = film?.text
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/androidpractice2020/MainActivity.kt b/app/src/main/java/com/example/androidpractice2020/MainActivity.kt
index b0b517d..680043f 100644
--- a/app/src/main/java/com/example/androidpractice2020/MainActivity.kt
+++ b/app/src/main/java/com/example/androidpractice2020/MainActivity.kt
@@ -1,11 +1,21 @@
package com.example.androidpractice2020
+import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
+import androidx.recyclerview.widget.DividerItemDecoration
+import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
+ val list = list_film
+ list.addItemDecoration(DividerItemDecoration(this, DividerItemDecoration.VERTICAL))
+ list.adapter = FilmAdapter(FilmRepository().arraylist) {
+ val intent = Intent(this, InfoFilmActivity::class.java)
+ intent.putExtra("id", it)
+ startActivity(intent)
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/batman.jpg b/app/src/main/res/drawable-v24/batman.jpg
new file mode 100644
index 0000000..b2a2bcd
Binary files /dev/null and b/app/src/main/res/drawable-v24/batman.jpg differ
diff --git a/app/src/main/res/drawable-v24/dovod.jpg b/app/src/main/res/drawable-v24/dovod.jpg
new file mode 100644
index 0000000..8c52a9b
Binary files /dev/null and b/app/src/main/res/drawable-v24/dovod.jpg differ
diff --git a/app/src/main/res/drawable-v24/joker.jpg b/app/src/main/res/drawable-v24/joker.jpg
new file mode 100644
index 0000000..226dfd8
Binary files /dev/null and b/app/src/main/res/drawable-v24/joker.jpg differ
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 4fc2444..e1a9178 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -6,13 +6,12 @@
android:layout_height="match_parent"
tools:context=".MainActivity">
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/film_info.xml b/app/src/main/res/layout/film_info.xml
new file mode 100644
index 0000000..60ecbbc
--- /dev/null
+++ b/app/src/main/res/layout/film_info.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/film_item.xml b/app/src/main/res/layout/film_item.xml
new file mode 100644
index 0000000..756037b
--- /dev/null
+++ b/app/src/main/res/layout/film_item.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
\ No newline at end of file