diff --git a/app/src/main/java/de/chrissthecoder/store/adapter/ShoppinglistShoplistAdapter.kt b/app/src/main/java/de/chrissthecoder/store/adapter/ShoppinglistShoplistAdapter.kt new file mode 100644 index 0000000..6513d86 --- /dev/null +++ b/app/src/main/java/de/chrissthecoder/store/adapter/ShoppinglistShoplistAdapter.kt @@ -0,0 +1,43 @@ +package de.chrissthecoder.store.adapter + +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import de.chrissthecoder.store.R +import de.chrissthecoder.store.dataclass.ShoppinglistShoplistItem + +class ShoppinglistShoplistAdapter(val shoplist: List) : RecyclerView.Adapter() { + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + val shoplabel: TextView + val shopicon: ImageView + val shoppinglistCount: TextView + + init { + Log.d(this.javaClass.name,"Get necessary Views") + shoplabel = view.findViewById(R.id.shoplabel) + shopicon = view.findViewById(R.id.shopicon) + shoppinglistCount = view.findViewById(R.id.shoppinglistCount) + } + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { + Log.d(this.javaClass.name, "Create new views (invoked by the layout manager)") + val view = LayoutInflater.from(parent.context).inflate(R.layout.fragment_shoppinglist_shoplist_item, parent, false) + return ItemViewHolder(view) + } + + override fun onBindViewHolder(holder: ShoppinglistShoplistAdapter.ItemViewHolder, position: Int) { + Log.d(this.javaClass.name,"Replace the contents of a view (invoked by the layout manager)") + holder.shoplabel.text = shoplist[position].shoplabel + holder.shoppinglistCount.text = "(" + shoplist[position].shoppinglistCount + ")" + } + + override fun getItemCount(): Int { + Log.d(this.javaClass.name, "Return the size of your dataset (invoked by the layout manager)") + return shoplist.size + } +} \ No newline at end of file diff --git a/app/src/main/java/de/chrissthecoder/store/dataclass/ShoppinglistShoplistItem.kt b/app/src/main/java/de/chrissthecoder/store/dataclass/ShoppinglistShoplistItem.kt new file mode 100644 index 0000000..0693618 --- /dev/null +++ b/app/src/main/java/de/chrissthecoder/store/dataclass/ShoppinglistShoplistItem.kt @@ -0,0 +1,3 @@ +package de.chrissthecoder.store.dataclass + +data class ShoppinglistShoplistItem(val shoplabel: String, val iconID: Int, val shoppinglistCount: Int) \ No newline at end of file diff --git a/app/src/main/java/de/chrissthecoder/store/ui/dashboard/tabfragment/shoppinglist/ShoplistFragment.kt b/app/src/main/java/de/chrissthecoder/store/ui/dashboard/tabfragment/shoppinglist/ShoplistFragment.kt index 801126e..384ed8d 100644 --- a/app/src/main/java/de/chrissthecoder/store/ui/dashboard/tabfragment/shoppinglist/ShoplistFragment.kt +++ b/app/src/main/java/de/chrissthecoder/store/ui/dashboard/tabfragment/shoppinglist/ShoplistFragment.kt @@ -5,18 +5,29 @@ import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import de.chrissthecoder.store.R +import de.chrissthecoder.store.adapter.ShoppinglistShoplistAdapter +import de.chrissthecoder.store.databinding.FragmentShoppinglistShoplistBinding +import de.chrissthecoder.store.dataclass.ShoppinglistShoplistItem /** * A [Fragment] subclass to list all shops that contains assigned shoppinglists. */ class ShoplistFragment : Fragment() { - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_shoppinglist_shoplist, container, false) + private var _binding: FragmentShoppinglistShoplistBinding? = null + private val binding get() = _binding!! + + private lateinit var adapter: ShoppinglistShoplistAdapter + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { + _binding = FragmentShoppinglistShoplistBinding.inflate(inflater, container, false) + + val shoplist = ArrayList() + + val shoplistRecyclerView = binding.shoplist + adapter = ShoppinglistShoplistAdapter(shoplist) + shoplistRecyclerView.adapter = adapter + + return binding.root } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_shoppinglist_shoplist.xml b/app/src/main/res/layout/fragment_shoppinglist_shoplist.xml index 60f19fb..9dd2966 100644 --- a/app/src/main/res/layout/fragment_shoppinglist_shoplist.xml +++ b/app/src/main/res/layout/fragment_shoppinglist_shoplist.xml @@ -14,5 +14,6 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_shoppinglist_shoplist_item.xml b/app/src/main/res/layout/fragment_shoppinglist_shoplist_item.xml index d1b51dc..ef93de1 100644 --- a/app/src/main/res/layout/fragment_shoppinglist_shoplist_item.xml +++ b/app/src/main/res/layout/fragment_shoppinglist_shoplist_item.xml @@ -3,11 +3,14 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="wrap_content">