Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.elite.kate_suvorova_shop
- import android.content.Context
- import android.graphics.Color
- import android.os.Bundle
- import android.support.v7.app.AppCompatActivity
- import android.support.v7.widget.LinearLayoutManager
- import android.support.v7.widget.RecyclerView
- import android.view.Gravity
- import android.view.ViewGroup
- import android.widget.FrameLayout
- import android.widget.GridLayout
- import android.widget.TextView
- import org.jetbrains.anko.*
- import org.jetbrains.anko.recyclerview.v7.recyclerView
- class ProductsActivity : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- verticalLayout {
- backgroundColor = Color.parseColor("#f7f2ef")
- val item1 = Product(title = "Кольцо Рубин", price = 200.55)
- val item2 = Product(title = "Кольцо Beyonce", price = 100.55)
- val item3 = Product(title = "Кольцо Future", price = 300.55)
- val item4 = Product(title = "Кольцо Лето", price = 230.55)
- val vegetables = listOf(item1, item2, item3, item4)
- recyclerView {
- layoutManager = LinearLayoutManager(this@ProductsActivity)
- adapter = ProductsAdapter(products = vegetables, context = this@ProductsActivity)
- }
- }
- }
- }
- class ProductsAdapter(
- val products: List<Product>,
- val context: Context
- ) :RecyclerView.Adapter<ProductViewHolder>() {
- override fun getItemCount() = products.size
- override fun onCreateViewHolder(recyclerView: ViewGroup, viewType: Int) = run {
- // Чтобы создать ProductView, нам нужен Context
- val itemView = ProductView(context)
- // Теперь в ячейке лежит ProductView
- ProductViewHolder(view = itemView)
- }
- override fun onBindViewHolder(holder: ProductViewHolder, position: Int) {
- val product = products[position]
- // holder.view теперь имеет тип ProductView
- // У ProductView есть 2 константы: titleView и priceView.
- // Они имеют тип TextView. Задаём этим TextView новый text
- holder.view.titleView.text = product.title
- // toString() - функция, превращающая дробное число в текст
- holder.view.priceView.text = product.price.toString()+"$"
- }
- }
- // ProductView является FrameLayout. Для его создания необходим
- // Context, который для Android
- class ProductView(context: Context) : FrameLayout(context) {
- lateinit var titleView: TextView // lateinit означает, что переменной
- lateinit var priceView: TextView // не нужно задавать начальное значение
- init { // код, который выполнится при создании каждого объекта ProductView
- // Задаём параметры макета для ProductView.
- // То же самое, что и lparams
- layoutParams = LayoutParams( matchParent, wrapContent)
- (layoutParams as LayoutParams).setMargins(10, 10, 10, 0);
- // Описание интерфейса ячейки
- verticalLayout {
- backgroundColor = Color.parseColor("#fefefe")
- padding = dip(10)
- titleView = textView {
- textSize = 16f
- textColor = Color.BLACK
- }
- imageView {
- setImageResource(R.drawable.i0)
- }.lparams{
- gravity = Gravity.TOP or Gravity.CENTER
- margin = dip(30)
- width = dip(200)
- height = dip(200)
- }
- priceView = textView {
- textSize = 16f
- }.lparams {
- gravity = Gravity.END
- }
- }
- }
- }
- class Product(val title: String, val price: Double)
- class ProductViewHolder(val view: ProductView) : RecyclerView.ViewHolder(view)
- /*
- import android.content.Context
- import android.graphics.Color
- import android.support.v7.app.AppCompatActivity
- import android.os.Bundle
- import android.support.v7.widget.DialogTitle
- import android.support.v7.widget.LinearLayoutManager
- import android.support.v7.widget.RecyclerView
- import android.view.ContextMenu
- import android.view.ViewGroup
- import android.widget.TextView
- import kotlinx.coroutines.experimental.android.UI
- import org.jetbrains.anko.UI
- import org.jetbrains.anko.recyclerview.v7.recyclerView
- import org.jetbrains.anko.textColor
- import org.jetbrains.anko.textView
- class ProductsActivity : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- val rings = Product(title = "Кольца")
- val earrings = Product(title = "Серьги")
- val pendant = Product(title = "Кулон")
- val jewerly = listOf(rings, earrings, pendant)
- recyclerView {
- layoutManager = LinearLayoutManager(this@ProductsActivity)
- adapter = ProductsAdapter(products = jewerly, context = this@ProductsActivity)
- }
- }
- }
- class Product(val title: String)
- class ProductViewHolder(val view: TextView) : RecyclerView.ViewHolder(view)
- class ProductsAdapter(
- val products: List<Product>,
- val context: Context
- ) :
- RecyclerView.Adapter<ProductViewHolder>() {
- override fun onCreateViewHolder(recyclerView: ViewGroup, viewtype: Int) = run{
- val itemUI = context.UI {
- textView{
- text = "My text"
- textColor = Color.parseColor("#4c8e9e")
- }
- }
- ProductViewHolder(view = itemUI.view as TextView)
- }
- override fun getItemCount() = products.size
- override fun onBindViewHolder(holder: ProductViewHolder, position: Int) {
- val product = products[position]
- holder.view.text = product.title
- }
- }
- /*
- fun main(){
- val peter = Human()
- class Panda{
- fun food(){
- peter.feed(panda = this)
- }
- }
- class Human{
- fun feed(panda: Panda){
- print("*Panda*: Hrum-hrum")
- }
- }
- }
- */
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement