Para los que están empezando en la programación para móviles Android en Kotlin, tal vez ya sepan como abrir un Activity desde otro, esto es fácil, pero al intentarlo desde un fragment se encontraron con que no pueden hacerlo de la misma forma, también es fácil, ahora les muestro.
Para abrir un Activity desde otro Activity sabemos que se hace con el siguiente código.
var intent = Intent(this, MyTargetActivity::class.java)
startActivity(intent)
Donde...
- MyTargetActivity es el Activity que queremos abrir.
- this es la referencia a nuestro activity en el que nos encontramos.
Cuando lo intentamos desde un Fragment, esto cambia, y se debe a que nuestro Fragment hereda de la superclase Fragment y no de la superclase AppCompatActivity, debido a esto se tiene que hacer de la siguiente forma.
var intent = Intent(activity, MyTargetActivity::class.java)
activity!!.startActivity(intent)
activity!!.startActivity(intent)
Donde...
- MyTargetActivity es el Activity que queremos abrir.
- activity es una propiedad de la superclase Fragment que hace referencia al Activity donde se encuentra nuestro Fragment, es decir, hace referencia al Activity contenedor.
Esto tambien lo pueden hacer usando el getter correspondiente, quedando de la siguiente manera.
var intent = Intent(getActivity(), MyTargetActivity::class.java)
getActivity()!!.startActivity(intent)
Y eso seria todo.
Espero les sea útil. Leer post completo...