¿Cómo crear un button en Kotlin que abre una nueva actividad (Android Studio)?
Hola. Estoy creando una aplicación con Android Studio y el idioma de Kotlin, y tengo problemas para que mi button abra una nueva actividad. Tengo el button creado en mi file xml pero no puedo encontrar la syntax KOTLIN de cómo declararlo en MainActivity.kt y cómo crear el OnClicklistener que me llevaría a la nueva actividad. Tengo la nueva actividad definida en el manifiesto, así que creo que solo necesito ayuda con la syntax para cambiar realmente de MainActivity.kt a secondActivity.kt. Cualquier ayuda es apreciada.
- La function Kotlin requiere nada, pero se define como un tipo diferente
- Prueba unitaria de la function de extensión de Kotlin en las classs de Android SDK
- Obligatorio <Objeto> y encontrado <Objeto>?
- Clases de Kotlin sin llaves
- Hacer clic en una vista de text para cambiar el fragment
- Anulación accidental: las siguientes declaraciones tienen la misma firma de JVM
- Extensiones en Kotlin
- El tipo Out-Projected 'ArrayList <*>' prohíbe el uso de 'public fun fun add (índice: Int, elemento: E): Unidad definida en java.util.ArrayList'
- ¿Cuál es el equivalente de este código de java a kotlin
- Extensión sintética Kotlin para ver
- Android Kotlin Extension super calling
- Clase Kotlin no encontrada
- Cómo crear callbacks de funciones anidadas como anko - syntax DSL Kotlin
Puede agregar el detector de events onclick
como se muestra a continuación.
button1.setOnClickListener(object: View.OnClickListener { override fun onClick(view: View): Unit { // Handler code here. val intent = Intent(context, DestActivity::class.java); startActivity(intent); } })
O puede usar forma simplificada
button1.setOnClickListener { // Handler code here. val intent = Intent(context, DestActivity::class.java) startActivity(intent); }
Botón en el file xml de layout
<Button android:id="@+id/btn_start_new_activity" android:text="New Activity" android:layout_width="wrap_content" android:layout_height="wrap_content" />
Por declararlo en el file de actividad de Kotlin
var btn_new_activity = findViewById(R.id.btn_start_new_activity) as Button
Establezca Onclicklistener en el button, para iniciar una nueva actividad cuando se hace clic en el button
btn_new_activity.setOnClickListener { val intent = Intent(context, NewActivity::class.java) startActivity(intent); }
Te recomiendo que uses la extensión Anko para Kotlin https://github.com/Kotlin/anko . Te permite usar la intención (y más otras cosas) de la manera más corta. En tu caso, será:
button { onClick { startActivity<SecondActivity>() } }