https://www.canva.com/design/DAGLVnG5u5o/xwUa4p7FjYR1Etr-dz5Ayw/view

Clase MainActivity

  1. Declarar variables para los componentes de la vista

    class MainActivity : AppCompatActivity() {
        private lateinit var btnReload: ImageView
        private lateinit var btnAdd: ImageView
        private lateinit var btnClose: ImageView
        private lateinit var recyclerViewStudent: RecyclerView
        private lateinit var emptyResult: TextView
        private lateinit var scrollView: ScrollView
        private lateinit var dbHelper: DatabaseHelper
    
        override fun onCreate(savedInstanceState: Bundle?) {
            ***
            init()
            bindRecyclerViewStudent()
        }
    
        override fun onResume() {
            super.onResume()
            bindRecyclerViewStudent()
        }
    
        private fun bindRecyclerViewStudent() {***}
        private fun init(){***}
    }
    
  2. Inicializar las variables de componentes de la vista

    class MainActivity : AppCompatActivity() {
        ***
        override fun onCreate(savedInstanceState: Bundle?) {***}
        override fun onResume() {***}
        private fun bindRecyclerViewStudent() {***}
    
        private fun init(){
            btnReload = findViewById(R.id.imageView_refreshListadoEstiantes)
            btnAdd = findViewById(R.id.imageView_addEstudiante)
            btnClose = findViewById(R.id.imageView_closeMainActivity)
            recyclerViewStudent = findViewById(R.id.recyclerView_estudiantes)
            emptyResult = findViewById(R.id.textView_emptyResult)
            scrollView = findViewById(R.id.scrollView_estudiantes)
            dbHelper = DatabaseHelper(this)
    
            btnReload.setOnClickListener {***}
            btnAdd.setOnClickListener {***}
            btnClose.setOnClickListener {***}
        }
    }
    
  3. Declarar on Click Listener al botón y mostrar mensaje Toast

    class MainActivity : AppCompatActivity() {
        ***
        override fun onCreate(savedInstanceState: Bundle?) {***}
        
        private fun init(){
            ***
            btnReload.setOnClickListener {
                onResume()
                Toast.makeText(this, "Actualizado", Toast.LENGTH_SHORT).show()
            }
        }
    }
    
  4. Declarar on Click Listener al botón y e invocar una nueva actividad

    class MainActivity : AppCompatActivity() {
        ***
        override fun onCreate(savedInstanceState: Bundle?) {***}
    
        private fun init(){
            ***
            btnAdd.setOnClickListener {
                val intent = Intent(this, RegisterActivity::class.java)
                startActivity(intent)
            }
        }
    }
    
  5. Declarar on Click Listener al botón y mostrar mensaje de confimación

    class MainActivity : AppCompatActivity() {
        ***
        override fun onCreate(savedInstanceState: Bundle?) {***}
    
        private fun init(){
            ***
            btnClose.setOnClickListener {
                val dialog = AlertDialog.Builder(this)
                dialog.setTitle("Cerrar Aplicación")
                dialog.setMessage("¿Desea cerrar la aplicación?")
                dialog.setPositiveButton("Si") { _, _ -> finish()}
                dialog.setNegativeButton("No") { _, _ -> }
                dialog.show()
            }
        }
    }
    
    
  6. Realizar binding al recycler view

    Requisitos

    class MainActivity : AppCompatActivity() {
        ***
        override fun onCreate(savedInstanceState: Bundle?) {***}
        
        private fun bindRecyclerViewStudent() {
            val layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
            recyclerViewStudent.layoutManager = layoutManager
            recyclerViewStudent.setHasFixedSize(true)
            val students = dbHelper.students()
            val adapter = StudentAdapter(students)
    				***
            recyclerViewStudent.adapter = adapter
        }
    }
    
    
  7. Mostrar el componente empyResult en caso de que esté vacía la lista de objetos

    Requisitos

    class MainActivity : AppCompatActivity() {
        ***
        override fun onCreate(savedInstanceState: Bundle?) {***}
    
        private fun bindRecyclerViewStudent() {
            ***
            if (dbHelper.students().isEmpty()) {
                emptyResult.visibility = View.VISIBLE
                scrollView.visibility = View.GONE
            } else {
                emptyResult.visibility = View.GONE
                scrollView.visibility = View.VISIBLE
            }
            ***
        }
    }
    
    

Clase adaper

Recuerda: