I have a button (id: readyButtonIntro) inside a layout (introscreen.xml) that i need to enable. To do that, i have another button inside the RecyclerView.ViewHolder.
This is my Layout to need access
introscreen.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    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:background="@color/colorWhite"
    tools:context=".IntroScreenVC">
    <LinearLayout
        android:id="@+id/indicatorContainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="40dp"
        android:gravity="center"
        android:orientation="horizontal"
        app:layout_constraintBottom_toBottomOf="parent" />
    <Button
        android:id="@+id/readyButtonIntro"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="16dp"
        android:layout_marginBottom="16dp"
        android:background="@color/colorWhite"
        android:textColor="@color/colorTerciary"
        android:alpha="0"
        android:enabled="false"
        android:text="Ready"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
And the another button is inside into the ViewHolder
slide_item_container.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="15dp"
    >
    <Button
        android:id="@+id/addData"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:text="Agregar Datos"
        android:background="@drawable/button_rounded2"
        />
</LinearLayout>
How can I enable from inside the class that listener the button?
class IntroSlideViewHolder(view: View) : RecyclerView.ViewHolder(view) {
    init {
        addData.setOnClickListener(View.OnClickListener {
        //NEED TO ENABLE THE BUTTON
        // val introScreen = IntroScreenVC()
        // introScreen.readyButton()
    }
}
I have a fun into IntroScreenVC but always have a error that its null, if a pass the context or view, do nothing.
     fun readyButton(){
         readyButtonIntro.isEnabled = true
      }
Could you help me with this? I would really appreciate it. Thank you very much! Regards.
Edit:
I put the adapter and the ViewHolder for more information. I ignored that because I didn't want to create confusion. Sorry for that..
Class Constructor
data class IntroSlide(val title: String, val description: String, val icon: Int, val firstButton: Boolean, val secondButton: Boolean, val thirdButton: Boolean)
IntroScreenVC.kt
class IntroScreenVC: AppCompatActivity() {
    private val introSliderAdapter = IntroScreenAdapter(
        listOf(
            IntroSlide(
                "title1",
            "description1",
                R.drawable.logo,
                false,
                false,
                false
            ),
            IntroSlide(
                "title2",
                "description2",
                R.drawable.doggrooming,
            true,
                false,
                false
            ),
            IntroSlide(
                "title3",
                "description3",
                R.drawable.introscreen3,
                false,
                true,
                false
            )
        )
    )
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.introscreen)
        introSliderViewPager.adapter = introSliderAdapter
    }
}
IntroScreenAdapter.kt
class IntroScreenAdapter(private val introSlides: List<IntroSlide>) : RecyclerView.Adapter<IntroSlideViewHolder>() {
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): IntroSlideViewHolder {
        val layoutInflater = LayoutInflater.from(parent?.context)
        val cellForRow = layoutInflater.inflate(R.layout.slide_item_container,parent,false)
        return IntroSlideViewHolder(cellForRow)
    }
    override fun getItemCount(): Int {
        return introSlides.size
    }
    override fun onBindViewHolder(holder: IntroSlideViewHolder, position: Int) {
        holder.bind(introSlides[position])
    }
}
class IntroSlideViewHolder(view: View) : RecyclerView.ViewHolder(view) {
    private val textTitle = view.findViewById<TextView>(R.id.textTitle)
    private val textDescription = view.findViewById<TextView>(R.id.textDescription)
    private val imageIcon = view.findViewById<ImageView>(R.id.imageSlideIcon)
    private val addData = view.findViewById<Button>(R.id.addData)
    private val addPet = view.findViewById<Button>(R.id.agregarMascota)
    val contexto = itemView.context;
    fun bind(introSlide: IntroSlide) {
        textTitle.text = introSlide.title
        textDescription.text = introSlide.description
        imageIcon.setImageResource(introSlide.icon)
        addData.isEnabled = introSlide.firstButton
        addPet.isEnabled = introSlide.thirdButton
        }
    }
    init {
        addData.setOnClickListener(View.OnClickListener {
           //ADD A ALERTDIALOG AND WHEN PRESS OK NEED TO ENABLE THAT BUTTON
            val mDialogView =  LayoutInflater.from(contexto).inflate(R.layout.alertdialog_add_data,null)
            val builder = AlertDialog.Builder(contexto)
            builder.setView(mDialogView)
            val dialog: AlertDialog = builder.create()
            dialog.show()
            dialog.getWindow()?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT));
            mDialogView.agregarDatosOK.setOnClickListener {
            //HERE I NEED TO ENABLE THE BUTTON 
            //readyButtonIntro(introscreen.xml)
            }
          }
}
Edit2:
This is what I do with sharedPreferences.
IntroScreenAdapter.kt
class IntroSlideViewHolder(view: View) : RecyclerView.ViewHolder(view) {
    private val textTitle = view.findViewById<TextView>(R.id.textTitle)
    private val textDescription = view.findViewById<TextView>(R.id.textDescription)
    private val imageIcon = view.findViewById<ImageView>(R.id.imageSlideIcon)
    private val addData = view.findViewById<Button>(R.id.addData)
    private val addPet = view.findViewById<Button>(R.id.agregarMascota)
//INIT sharedPreferences
private val prefs: SharedPreferences = view.context.getSharedPreferences(getString(R.string.prefs_file), Context.MODE_PRIVATE)
    val contexto = itemView.context;
    fun bind(introSlide: IntroSlide) {
        textTitle.text = introSlide.title
        textDescription.text = introSlide.description
        imageIcon.setImageResource(introSlide.icon)
        addData.isEnabled = introSlide.firstButton
        addPet.isEnabled = introSlide.thirdButton
        }
    }
    init {
        addData.setOnClickListener(View.OnClickListener {
            val mDialogView = LayoutInflater.from(contexto).inflate(R.layout.alertdialog_add_data,null)
            val builder = AlertDialog.Builder(contexto)
            builder.setView(mDialogView)
            val dialog: AlertDialog = builder.create()
            dialog.show()
            dialog.getWindow()?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT));
            mDialogView.agregarDatosOK.setOnClickListener {
                    //HERE EDIT THE sharedPreferences
                    with (prefs.edit()) {
                        putBoolean("ready_button_enabled", true)
                        apply()
                    }
                    dialog.dismiss()
            }
          }
}
IntroScreenVC.kt
class IntroScreenVC: AppCompatActivity() {
    private val introSliderAdapter = IntroScreenAdapter(
        listOf(
            IntroSlide(
                "title1",
            "description1",
                R.drawable.logo,
                false,
                false,
                false
            ),
            IntroSlide(
                "title2",
                "description2",
                R.drawable.doggrooming,
            true,
                false,
                false
            ),
            IntroSlide(
                "title3",
                "description3",
                R.drawable.introscreen3,
                false,
                true,
                false
            )
        )
    )
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.introscreen)
        introSliderViewPager.adapter = introSliderAdapter
    }
    //HERE PUT THE RESUME TO EXPECT THE SHOW AND ENABLE THE BUTTON
    override fun onResume() {
        super.onResume()
        val prefs = getSharedPreferences(getString(R.string.prefs_file), Context.MODE_PRIVATE)
        val buttonEnabled = prefs.getBoolean("ready_button_enabled", false)
        readyButtonIntro.isEnabled = buttonEnabled
        if (buttonEnabled) {
            readyButtonIntro.alpha = 1f
        }else {
            readyButtonIntro.alpha = 0f
        }
    }
}
SOLUTION:
Into the Activity (IntroScreenVC)
class IntroScreenVC: AppCompatActivity(), IntroScreenAdapter.AdapterOnClick {
    private val introSliderAdapter =
        listOf(
           ...
        )
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.introscreen)
        introSliderViewPager.adapter = IntroScreenAdapter(introSliderAdapter, this)
}
...
    override fun onClick() {
        //HERE ENABLE AND SHOW THE BUTTON
        readyButtonIntro.isEnabled = true
        readyButtonIntro.alpha = 1f
    }
And the into the Adapter and RecyclerView
class IntroScreenAdapter(private val introSlides: List<IntroSlide>, val adapterOnClick: AdapterOnClick) : RecyclerView.Adapter<IntroScreenAdapter.IntroSliderViewHolder>() {
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): IntroScreenAdapter.IntroSliderViewHolder {
        val layoutInflater = LayoutInflater.from(parent?.context)
        val cellForRow = layoutInflater.inflate(R.layout.slide_item_container,parent,false)
        return IntroSliderViewHolder(cellForRow)
    }
...
inner class IntroSliderViewHolder(view: View) : RecyclerView.ViewHolder(view) {
...
init {
            addData.setOnClickListener(View.OnClickListener {
                val mDialogView = LayoutInflater.from(contexto).inflate(R.layout.alertdialog_add_data,null)
                val builder = AlertDialog.Builder(contexto)
                builder.setView(mDialogView)
                val dialog: AlertDialog = builder.create()
                dialog.show()
                dialog.getWindow()?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT));
                mDialogView.agregarDatosOK.setOnClickListener {
                        //FINALLY HERE CHANGE THE BUTTON TO ENABLE :)
                 adapterOnClick.onClick()
}
}
}
}
 
    