1

This might sound really stupid but I've created a ViewPager2 within my WelcomeActivity to show bunch of welcome images telling users about the app. See code below:

class WelcomeActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_welcome)

        //What do i write here to hookup my viewpager with the adapter
    }
}

private const val ARG_RES_ID = "image_res_id"
private val imageResources = listOf(R.drawable.welcome_0, R.drawable.welcome_1, R.drawable.welcome_2, R.drawable.welcome_3)

class WelcomeViewPagerAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
    override fun getItemCount(): Int = 4

    override fun createFragment(position: Int): Fragment {
        val fragment = WelcomePageFragment()
        fragment.arguments = Bundle().apply {
            putInt(ARG_RES_ID, imageResources[position])
        }

        return fragment
    }
}

But I can't figure out how to initialize my WelcomeViewPagerAdapter to set it to viewpager in my layout file. I don't konw what to pass in. Please help!

Update I tried doing this in my activity's onCreate:

val welcomeViewPagerAdapter = WelcomeViewPagerAdapter(WelcomePageFragment())
welcome_viewPager.adapter = welcomeViewPagerAdapter

But this gives me an error saying: Unable to start activity ComponentInfo{com.mypckg/com.mypckg.WelcomeActivity}: java.lang.IllegalStateException: Fragment WelcomePageFragment{cc672bf (685e8109-8688-4d56-ac1e-4dca4a0f6e06)} has not been attached yet.

Amol Borkar
  • 2,321
  • 7
  • 32
  • 63

0 Answers0