diff --git a/app/build.gradle b/app/build.gradle index debcfaf..1c4927f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -22,6 +22,10 @@ android { proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } + buildFeatures + { + viewBinding = true + } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 diff --git a/app/src/main/java/otus/gpb/homework/viewandresources/CartActivity.kt b/app/src/main/java/otus/gpb/homework/viewandresources/CartActivity.kt index b6cbf73..a2fc0c9 100644 --- a/app/src/main/java/otus/gpb/homework/viewandresources/CartActivity.kt +++ b/app/src/main/java/otus/gpb/homework/viewandresources/CartActivity.kt @@ -2,10 +2,45 @@ package otus.gpb.homework.viewandresources import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import androidx.recyclerview.widget.LinearLayoutManager +import otus.gpb.homework.viewandresources.databinding.ActivityCartBinding class CartActivity : AppCompatActivity() { + + private val cartItems = listOf( + CartItem("List Item 1", + "Supporting line text 1", + "image/cat", + "$35"), + + CartItem("List Item 2", + "Supporting line text 2", + "image/cat", + "$35"), + + CartItem("List Item 3", + "Supporting line text 3", + "image/cat", + "$35"), + + CartItem("List Item 4", + "Supporting line text 4", + "image/cat", + "$35"), + ) + + private lateinit var binding: ActivityCartBinding + private lateinit var adapter: CartItemAdapter + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_cart) + binding = ActivityCartBinding.inflate(layoutInflater) + setContentView(binding.root) + + val manager = LinearLayoutManager(this) // LayoutManager + adapter = CartItemAdapter() // Создание объекта + adapter.data = cartItems + binding.recyclerView.layoutManager = manager // Назначение LayoutManager для RecyclerView + binding.recyclerView.adapter = adapter // Назначение адаптера для RecyclerView } } \ No newline at end of file diff --git a/app/src/main/java/otus/gpb/homework/viewandresources/CartItem.kt b/app/src/main/java/otus/gpb/homework/viewandresources/CartItem.kt new file mode 100644 index 0000000..0fb2f3a --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/viewandresources/CartItem.kt @@ -0,0 +1,8 @@ +package otus.gpb.homework.viewandresources + +data class CartItem( + val name: String, + val desc: String, + val image: String, + val price: String +) diff --git a/app/src/main/java/otus/gpb/homework/viewandresources/CartItemAdapter.kt b/app/src/main/java/otus/gpb/homework/viewandresources/CartItemAdapter.kt new file mode 100644 index 0000000..ed3f5f7 --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/viewandresources/CartItemAdapter.kt @@ -0,0 +1,41 @@ +package otus.gpb.homework.viewandresources + +import android.view.LayoutInflater +import android.view.ViewGroup +import android.widget.ImageView +import androidx.recyclerview.widget.RecyclerView +import otus.gpb.homework.viewandresources.databinding.ItemCartBinding + + +class CartItemAdapter : RecyclerView.Adapter() { + + var data: List = emptyList() + set(newValue) { + field = newValue + notifyDataSetChanged() + } + + class CartItemViewHolder(val binding: ItemCartBinding) : RecyclerView.ViewHolder(binding.root) + + override fun getItemCount(): Int = data.size // Количество элементов в списке данных + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CartItemViewHolder { + val inflater = LayoutInflater.from(parent.context) + val binding = ItemCartBinding.inflate(inflater, parent, false) + + return CartItemViewHolder(binding) + } + + override fun onBindViewHolder(holder: CartItemViewHolder, position: Int) { + val item = data[position] // Получение записи списка данных по позиции + + with(holder.binding) { + cartItemTitle.text = item.name + cartItemPrice.text = item.price + cartItemCategoryDesc.text = item.desc + cartItemImageView.scaleType=ImageView.ScaleType.CENTER_INSIDE + cartItemImageView.setImageResource(R.drawable.cat) + + } + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/arrow_back_24px.xml b/app/src/main/res/drawable/arrow_back_24px.xml new file mode 100644 index 0000000..0e2e863 --- /dev/null +++ b/app/src/main/res/drawable/arrow_back_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/attach_file_24px.xml b/app/src/main/res/drawable/attach_file_24px.xml new file mode 100644 index 0000000..6d9ac73 --- /dev/null +++ b/app/src/main/res/drawable/attach_file_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/bookmark_24px.xml b/app/src/main/res/drawable/bookmark_24px.xml new file mode 100644 index 0000000..cc78582 --- /dev/null +++ b/app/src/main/res/drawable/bookmark_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/cancel_24px.xml b/app/src/main/res/drawable/cancel_24px.xml new file mode 100644 index 0000000..ea3a291 --- /dev/null +++ b/app/src/main/res/drawable/cancel_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/cat.png b/app/src/main/res/drawable/cat.png new file mode 100644 index 0000000..dfefba7 Binary files /dev/null and b/app/src/main/res/drawable/cat.png differ diff --git a/app/src/main/res/drawable/image_24px.xml b/app/src/main/res/drawable/image_24px.xml new file mode 100644 index 0000000..8f9ee7f --- /dev/null +++ b/app/src/main/res/drawable/image_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/mic_24px.xml b/app/src/main/res/drawable/mic_24px.xml new file mode 100644 index 0000000..b13baa4 --- /dev/null +++ b/app/src/main/res/drawable/mic_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/mobile_friendly_24px.xml b/app/src/main/res/drawable/mobile_friendly_24px.xml new file mode 100644 index 0000000..cd8e089 --- /dev/null +++ b/app/src/main/res/drawable/mobile_friendly_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/mood_24px.xml b/app/src/main/res/drawable/mood_24px.xml new file mode 100644 index 0000000..947ca7f --- /dev/null +++ b/app/src/main/res/drawable/mood_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/more_vert_24px.xml b/app/src/main/res/drawable/more_vert_24px.xml new file mode 100644 index 0000000..e4aa85d --- /dev/null +++ b/app/src/main/res/drawable/more_vert_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/person_24px.xml b/app/src/main/res/drawable/person_24px.xml new file mode 100644 index 0000000..b77fac6 --- /dev/null +++ b/app/src/main/res/drawable/person_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/sunny_24px.xml b/app/src/main/res/drawable/sunny_24px.xml new file mode 100644 index 0000000..5793e2e --- /dev/null +++ b/app/src/main/res/drawable/sunny_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/today_24px.xml b/app/src/main/res/drawable/today_24px.xml new file mode 100644 index 0000000..167fd78 --- /dev/null +++ b/app/src/main/res/drawable/today_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/font-v26/roboto.xml b/app/src/main/res/font-v26/roboto.xml new file mode 100644 index 0000000..5b737d3 --- /dev/null +++ b/app/src/main/res/font-v26/roboto.xml @@ -0,0 +1,4 @@ + + + + diff --git a/app/src/main/res/font/roboto.xml b/app/src/main/res/font/roboto.xml new file mode 100644 index 0000000..5b737d3 --- /dev/null +++ b/app/src/main/res/font/roboto.xml @@ -0,0 +1,4 @@ + + + + diff --git a/app/src/main/res/font/roboto_r.ttf b/app/src/main/res/font/roboto_r.ttf new file mode 100644 index 0000000..440843a Binary files /dev/null and b/app/src/main/res/font/roboto_r.ttf differ diff --git a/app/src/main/res/layout/activity_cart.xml b/app/src/main/res/layout/activity_cart.xml index 57dc4d4..d98c25e 100644 --- a/app/src/main/res/layout/activity_cart.xml +++ b/app/src/main/res/layout/activity_cart.xml @@ -2,8 +2,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +