diff --git a/app/src/main/java/de/chrissthecoder/store/adapter/ShoppinglistShoplistAdapter.kt b/app/src/main/java/de/chrissthecoder/store/adapter/ShoppinglistShoplistAdapter.kt index 6513d86..e66e09f 100644 --- a/app/src/main/java/de/chrissthecoder/store/adapter/ShoppinglistShoplistAdapter.kt +++ b/app/src/main/java/de/chrissthecoder/store/adapter/ShoppinglistShoplistAdapter.kt @@ -8,32 +8,31 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import de.chrissthecoder.store.R +import de.chrissthecoder.store.databinding.FragmentShoppinglistShoplistItemBinding import de.chrissthecoder.store.dataclass.ShoppinglistShoplistItem +import de.chrissthecoder.store.interfaces.ShoppinglistShoplistItemClickListener -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) +class ShoppinglistShoplistAdapter(val shoplist: List, private val listener: ShoppinglistShoplistItemClickListener) : RecyclerView.Adapter() { + inner class ItemViewHolder(private val binding: FragmentShoppinglistShoplistItemBinding, private val listener: ShoppinglistShoplistItemClickListener) : RecyclerView.ViewHolder(binding.root) { + fun bindItem(item: ShoppinglistShoplistItem) { + binding.shoplabel.text = item.shoplabel + binding.shoppinglistCount.text = "(" + item.shoppinglistCount + ")" + binding.cardview.setOnClickListener { + listener.onClick(item) + } } } 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) + val from = LayoutInflater.from(parent.context) + val binding = FragmentShoppinglistShoplistItemBinding.inflate(from, parent, false) + return ItemViewHolder(binding, listener) } 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 + ")" + holder.bindItem(shoplist[position]) } override fun getItemCount(): Int { diff --git a/app/src/main/java/de/chrissthecoder/store/interfaces/ShoppinglistShoplistItemClickListener.kt b/app/src/main/java/de/chrissthecoder/store/interfaces/ShoppinglistShoplistItemClickListener.kt new file mode 100644 index 0000000..a14c23a --- /dev/null +++ b/app/src/main/java/de/chrissthecoder/store/interfaces/ShoppinglistShoplistItemClickListener.kt @@ -0,0 +1,7 @@ +package de.chrissthecoder.store.interfaces + +import de.chrissthecoder.store.dataclass.ShoppinglistShoplistItem + +interface ShoppinglistShoplistItemClickListener { + fun onClick(shopitem: ShoppinglistShoplistItem) +} \ No newline at end of file diff --git a/app/src/main/java/de/chrissthecoder/store/ui/dashboard/tabfragment/shoppinglist/ShoppinglistListsFragment.kt b/app/src/main/java/de/chrissthecoder/store/ui/dashboard/tabfragment/shoppinglist/ShoppinglistListsFragment.kt new file mode 100644 index 0000000..74ac282 --- /dev/null +++ b/app/src/main/java/de/chrissthecoder/store/ui/dashboard/tabfragment/shoppinglist/ShoppinglistListsFragment.kt @@ -0,0 +1,19 @@ +package de.chrissthecoder.store.ui.dashboard.tabfragment.shoppinglist + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import de.chrissthecoder.store.R + +class ShoppinglistListsFragment : Fragment() { + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_shoppinglist_lists, container, false) + } +} \ No newline at end of file diff --git a/app/src/main/java/de/chrissthecoder/store/ui/dashboard/tabfragment/shoppinglist/ShoppinglistShoplistFragment.kt b/app/src/main/java/de/chrissthecoder/store/ui/dashboard/tabfragment/shoppinglist/ShoppinglistShoplistFragment.kt index 72ed114..fbfa291 100644 --- a/app/src/main/java/de/chrissthecoder/store/ui/dashboard/tabfragment/shoppinglist/ShoppinglistShoplistFragment.kt +++ b/app/src/main/java/de/chrissthecoder/store/ui/dashboard/tabfragment/shoppinglist/ShoppinglistShoplistFragment.kt @@ -5,14 +5,17 @@ import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.navigation.fragment.findNavController +import de.chrissthecoder.store.R import de.chrissthecoder.store.adapter.ShoppinglistShoplistAdapter import de.chrissthecoder.store.databinding.FragmentShoppinglistShoplistBinding import de.chrissthecoder.store.dataclass.ShoppinglistShoplistItem +import de.chrissthecoder.store.interfaces.ShoppinglistShoplistItemClickListener /** * A [Fragment] subclass to list all shops that contains assigned shoppinglists. */ -class ShoppinglistShoplistFragment : Fragment() { +class ShoppinglistShoplistFragment : Fragment(), ShoppinglistShoplistItemClickListener { private var _binding: FragmentShoppinglistShoplistBinding? = null private val binding get() = _binding!! @@ -23,11 +26,16 @@ class ShoppinglistShoplistFragment : Fragment() { _binding = FragmentShoppinglistShoplistBinding.inflate(inflater, container, false) val shoplist = ArrayList() + shoplist.add(ShoppinglistShoplistItem("Edeka", 0, 3)) val shoplistRecyclerView = binding.shoplist - adapter = ShoppinglistShoplistAdapter(shoplist) + adapter = ShoppinglistShoplistAdapter(shoplist, this) shoplistRecyclerView.adapter = adapter return binding.root } + + override fun onClick(shopitem: ShoppinglistShoplistItem) { + findNavController().navigate(R.id.action_nav_dashboard_to_shoppinglistLists) + } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_shoppinglist_lists.xml b/app/src/main/res/layout/fragment_shoppinglist_lists.xml new file mode 100644 index 0000000..bbc3e6a --- /dev/null +++ b/app/src/main/res/layout/fragment_shoppinglist_lists.xml @@ -0,0 +1,9 @@ + + + + \ 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 ef93de1..f660577 100644 --- a/app/src/main/res/layout/fragment_shoppinglist_shoplist_item.xml +++ b/app/src/main/res/layout/fragment_shoppinglist_shoplist_item.xml @@ -1,11 +1,13 @@ - + tools:layout="@layout/fragment_dashboard" > + + + + \ 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 9753547..75fb5bb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -13,4 +13,6 @@ Einkaufszettel Minderbestand + + Einkaufszettel \ No newline at end of file