From c191461c46fa0553c9ee421349c60f45fe722405 Mon Sep 17 00:00:00 2001 From: aliasgersg Date: Thu, 19 Oct 2023 11:49:01 -0400 Subject: [PATCH 1/3] In this commit attached an instance of ImageDisplayFragment using factory method --- .idea/misc.xml | 1 - .../main/java/edu/temple/inclassactivity/MainActivity.kt | 4 ++++ app/src/main/res/layout/activity_main.xml | 9 +++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 0ad17cb..8978d23 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/java/edu/temple/inclassactivity/MainActivity.kt b/app/src/main/java/edu/temple/inclassactivity/MainActivity.kt index 85bef74..0047502 100644 --- a/app/src/main/java/edu/temple/inclassactivity/MainActivity.kt +++ b/app/src/main/java/edu/temple/inclassactivity/MainActivity.kt @@ -14,6 +14,10 @@ class MainActivity : AppCompatActivity() { typedArray.recycle() // Attach an instance of ImageDisplayFragment using factory method + val imageDisplayFragment = ImageDisplayFragment.newInstance(imageArray) + supportFragmentManager.beginTransaction() + .replace(R.id.fragmentContainerView, imageDisplayFragment) + .commit() } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index d548e41..3b410fd 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -5,4 +5,13 @@ android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> + + \ No newline at end of file From 5b2b6a82418b90ab0cd735971467eea73f0cc0d9 Mon Sep 17 00:00:00 2001 From: aliasgersg Date: Tue, 24 Oct 2023 12:21:42 -0400 Subject: [PATCH 2/3] In this commit I found an alternative to make my images appear in during design times --- .../temple/inclassactivity/ImageDisplayFragment.kt | 12 +++++++++++- .../java/edu/temple/inclassactivity/MainActivity.kt | 5 +++++ app/src/main/res/layout/activity_main.xml | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/edu/temple/inclassactivity/ImageDisplayFragment.kt b/app/src/main/java/edu/temple/inclassactivity/ImageDisplayFragment.kt index 4d09c5b..9b4ed97 100644 --- a/app/src/main/java/edu/temple/inclassactivity/ImageDisplayFragment.kt +++ b/app/src/main/java/edu/temple/inclassactivity/ImageDisplayFragment.kt @@ -16,6 +16,8 @@ const val IMAGES_KEY = "imageList" class ImageDisplayFragment : Fragment() { + lateinit var someVar : Array + private lateinit var images: IntArray override fun onCreate(savedInstanceState: Bundle?) { @@ -40,11 +42,19 @@ class ImageDisplayFragment : Fragment() { // The recycler view is the root element of the Fragment's layout // as such the view argument passed to onViewCreated() is the RecyclerView with (view as RecyclerView) { - adapter = CustomRecyclerAdapter(images) + if (::someVar.isInitialized) adapter = CustomRecyclerAdapter(images) layoutManager = GridLayoutManager(requireContext(), 2) } } + fun setImages(newImages : IntArray) { + images = newImages + + val adapter = CustomRecyclerAdapter(newImages) + + (view as RecyclerView).adapter = adapter + } + companion object { fun newInstance(images: IntArray) = ImageDisplayFragment().apply { diff --git a/app/src/main/java/edu/temple/inclassactivity/MainActivity.kt b/app/src/main/java/edu/temple/inclassactivity/MainActivity.kt index 0047502..a9f0497 100644 --- a/app/src/main/java/edu/temple/inclassactivity/MainActivity.kt +++ b/app/src/main/java/edu/temple/inclassactivity/MainActivity.kt @@ -4,10 +4,14 @@ import androidx.appcompat.app.AppCompatActivity import android.os.Bundle class MainActivity : AppCompatActivity() { + + + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) + // Fetch images into IntArray called imageArray val typedArray = resources.obtainTypedArray(R.array.image_ids) val imageArray = IntArray(typedArray.length()) {typedArray.getResourceId(it, 0)} @@ -15,6 +19,7 @@ class MainActivity : AppCompatActivity() { // Attach an instance of ImageDisplayFragment using factory method val imageDisplayFragment = ImageDisplayFragment.newInstance(imageArray) + supportFragmentManager.beginTransaction() .replace(R.id.fragmentContainerView, imageDisplayFragment) .commit() diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 3b410fd..84b26fb 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -7,6 +7,7 @@ tools:context=".MainActivity"> Date: Thu, 26 Oct 2023 12:01:53 -0400 Subject: [PATCH 3/3] In this commit I designed another way to use fragments, while this time using a button --- .../inclassactivity/ImageDisplayFragment.kt | 16 ++++------------ .../edu/temple/inclassactivity/MainActivity.kt | 15 +++++++++++---- app/src/main/res/layout/activity_main.xml | 18 ++++++++++++++---- .../main/res/layout/fragment_image_display.xml | 1 + 4 files changed, 30 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/edu/temple/inclassactivity/ImageDisplayFragment.kt b/app/src/main/java/edu/temple/inclassactivity/ImageDisplayFragment.kt index 9b4ed97..8cd37bb 100644 --- a/app/src/main/java/edu/temple/inclassactivity/ImageDisplayFragment.kt +++ b/app/src/main/java/edu/temple/inclassactivity/ImageDisplayFragment.kt @@ -50,17 +50,9 @@ class ImageDisplayFragment : Fragment() { fun setImages(newImages : IntArray) { images = newImages - val adapter = CustomRecyclerAdapter(newImages) - - (view as RecyclerView).adapter = adapter - } - - companion object { - fun newInstance(images: IntArray) = - ImageDisplayFragment().apply { - arguments = Bundle().apply { - putIntArray(IMAGES_KEY, images) - } + view?.run { + (this as RecyclerView).adapter = CustomRecyclerAdapter(newImages) } + } + } -} \ No newline at end of file diff --git a/app/src/main/java/edu/temple/inclassactivity/MainActivity.kt b/app/src/main/java/edu/temple/inclassactivity/MainActivity.kt index a9f0497..67a9186 100644 --- a/app/src/main/java/edu/temple/inclassactivity/MainActivity.kt +++ b/app/src/main/java/edu/temple/inclassactivity/MainActivity.kt @@ -2,27 +2,34 @@ package edu.temple.inclassactivity import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import android.widget.Button class MainActivity : AppCompatActivity() { - - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) + // Fetch images into IntArray called imageArray val typedArray = resources.obtainTypedArray(R.array.image_ids) val imageArray = IntArray(typedArray.length()) {typedArray.getResourceId(it, 0)} typedArray.recycle() + findViewById