From 7288d5ae154f895d71727acc92828aa555e8108b Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Tue, 16 Feb 2021 11:37:58 +0100 Subject: Starting to work on recycler view feature --- app/src/main/res/layout/item_layout.xml | 63 +++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 app/src/main/res/layout/item_layout.xml (limited to 'app/src/main/res/layout/item_layout.xml') diff --git a/app/src/main/res/layout/item_layout.xml b/app/src/main/res/layout/item_layout.xml new file mode 100644 index 0000000..e03e874 --- /dev/null +++ b/app/src/main/res/layout/item_layout.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file -- cgit v1.2.3 From d49771c90315897e0fe6eb8d4034e36853bf6650 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Wed, 17 Feb 2021 08:00:07 +0100 Subject: Trying to mimic the Flower exemple from google. --- app/src/main/java/xyz/adjutor/aniki/ListAdapter.kt | 45 --------------------- .../main/java/xyz/adjutor/aniki/MangaAdapter.kt | 40 ++++++++++++++++++ app/src/main/java/xyz/adjutor/aniki/MangaSource.kt | 11 +++++ .../main/java/xyz/adjutor/aniki/TopMangaPage.kt | 11 +++-- app/src/main/res/layout/item_layout.xml | 34 +++++++--------- app/src/main/res/layout/row_layout.xml | 47 ---------------------- app/src/main/res/layout/top_manga_page.xml | 9 +++-- app/src/main/res/values/strings.xml | 21 +++++++++- 8 files changed, 98 insertions(+), 120 deletions(-) delete mode 100644 app/src/main/java/xyz/adjutor/aniki/ListAdapter.kt create mode 100644 app/src/main/java/xyz/adjutor/aniki/MangaAdapter.kt create mode 100644 app/src/main/java/xyz/adjutor/aniki/MangaSource.kt delete mode 100644 app/src/main/res/layout/row_layout.xml (limited to 'app/src/main/res/layout/item_layout.xml') diff --git a/app/src/main/java/xyz/adjutor/aniki/ListAdapter.kt b/app/src/main/java/xyz/adjutor/aniki/ListAdapter.kt deleted file mode 100644 index 74ba9c4..0000000 --- a/app/src/main/java/xyz/adjutor/aniki/ListAdapter.kt +++ /dev/null @@ -1,45 +0,0 @@ -package xyz.adjutor.aniki - -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView - -class ListAdapter(private val dataSet: Array) : - RecyclerView.Adapter() { - - /** - * Provide a reference to the type of views that you are using - * (custom ViewHolder). - */ - class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { - // Define click listener for the ViewHolder's View. - val firstLine: TextView = view.findViewById(R.id.firstLine) - val secondLine: TextView = view.findViewById(R.id.secondLine) - - } - - // Create new views (invoked by the layout manager) - override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): ViewHolder { - // Create a new view, which defines the UI of the list item - val view = LayoutInflater.from(viewGroup.context) - .inflate(R.layout.row_layout, viewGroup, false) - - return ViewHolder(view) - } - - // Replace the contents of a view (invoked by the layout manager) - override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) { - - // Get element from your dataset at this position and replace the - // contents of the view with that element - viewHolder.firstLine.text = dataSet[position] - viewHolder.secondLine.text = dataSet[position] - } - - // Return the size of your dataset (invoked by the layout manager) - override fun getItemCount() = dataSet.size - -} - diff --git a/app/src/main/java/xyz/adjutor/aniki/MangaAdapter.kt b/app/src/main/java/xyz/adjutor/aniki/MangaAdapter.kt new file mode 100644 index 0000000..8e1c8f2 --- /dev/null +++ b/app/src/main/java/xyz/adjutor/aniki/MangaAdapter.kt @@ -0,0 +1,40 @@ +package xyz.adjutor.aniki + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import java.util.ArrayList + +class MangaAdapter(val mangaList: Array) : + RecyclerView.Adapter() { + + // Describes an item view and its place within the RecyclerView + class MangaViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + private val mangaTextView: TextView = itemView.findViewById(R.id.tv_title) + + fun bind(word: String) { + mangaTextView.text = word + } + } + + // Returns a new ViewHolder + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MangaViewHolder { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_layout, parent, false) + + return MangaViewHolder(view) + } + + // Returns size of data list + override fun getItemCount(): Int { + return mangaList.size + } + + // Displays data at a certain position + override fun onBindViewHolder(holder: MangaViewHolder, position: Int) { + holder.bind(mangaList[position]) + } +} + diff --git a/app/src/main/java/xyz/adjutor/aniki/MangaSource.kt b/app/src/main/java/xyz/adjutor/aniki/MangaSource.kt new file mode 100644 index 0000000..86e46e2 --- /dev/null +++ b/app/src/main/java/xyz/adjutor/aniki/MangaSource.kt @@ -0,0 +1,11 @@ +package xyz.adjutor.aniki + +import android.content.Context + +class MangaSource(val context: Context) { + fun getMangaList(): Array { + + // Return manga list from string resources + return context.resources.getStringArray(R.array.manga_array) + } +} \ No newline at end of file diff --git a/app/src/main/java/xyz/adjutor/aniki/TopMangaPage.kt b/app/src/main/java/xyz/adjutor/aniki/TopMangaPage.kt index a59e038..32d3ce6 100644 --- a/app/src/main/java/xyz/adjutor/aniki/TopMangaPage.kt +++ b/app/src/main/java/xyz/adjutor/aniki/TopMangaPage.kt @@ -6,11 +6,10 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Button +import androidx.appcompat.app.AppCompatActivity import androidx.navigation.fragment.findNavController +import androidx.recyclerview.widget.RecyclerView -/** - * A simple [Fragment] subclass as the second destination in the navigation. - */ class TopMangaPage : Fragment() { override fun onCreateView( @@ -28,5 +27,11 @@ class TopMangaPage : Fragment() { findNavController().navigate(R.id.action_TopMangaPage_to_HomePage) } + // Retrieves data from mangasource + val mangaList = MangaSource(requireActivity().applicationContext).getMangaList() + + val recyclerView: RecyclerView = view.findViewById(R.id.recycler_view) + recyclerView.adapter = MangaAdapter(mangaList) + } } \ No newline at end of file diff --git a/app/src/main/res/layout/item_layout.xml b/app/src/main/res/layout/item_layout.xml index e03e874..c4b662c 100644 --- a/app/src/main/res/layout/item_layout.xml +++ b/app/src/main/res/layout/item_layout.xml @@ -2,6 +2,7 @@ - - - + android:textSize="30sp"/> - - - + /--> - + \ No newline at end of file diff --git a/app/src/main/res/layout/row_layout.xml b/app/src/main/res/layout/row_layout.xml deleted file mode 100644 index 1c74476..0000000 --- a/app/src/main/res/layout/row_layout.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/layout/top_manga_page.xml b/app/src/main/res/layout/top_manga_page.xml index f8d2510..4a807f1 100644 --- a/app/src/main/res/layout/top_manga_page.xml +++ b/app/src/main/res/layout/top_manga_page.xml @@ -1,5 +1,6 @@ -