¿Cómo enviar datos a MainActivity en Android usando Kotlin?

Como hay muchos métodos para enviar los datos, en este artículo usaremos el método startActivityForResult() . Aquí necesitamos iniciar una actividad secundaria usando el método startActivityForResult() . Luego, desde la actividad infantil, podemos enviar fácilmente datos a la actividad principal. 

Ejemplo :

Nota : para implementarlo en Java, consulte este artículo: Cómo enviar datos de una actividad a una segunda actividad usando Java

Implementación paso a paso

Paso 1 : crea un nuevo proyecto en Android usando kotlin

Paso 2 : crear un diseño XML para MainActivity

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"
    tools:context=".MainActivity">
  
    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/ic_geeksforgeeks"
        app:layout_constraintBottom_toTopOf="@+id/textView"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
  
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text View"
        android:textColor="#7CB342"
        android:textSize="20dp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.303" />
  
</androidx.constraintlayout.widget.ConstraintLayout>

Paso 3: A continuación se muestra el código para el archivo MainActivity.kt

Kotlin

package com.ayush.gfg_exit
  
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import kotlin.properties.Delegates
  
class MainActivity : AppCompatActivity() {
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        findViewById<Button>(R.id.btnMain).setOnClickListener {
            val intent = Intent(this, ChildActivity::class.java)
             // 0 is request code
            startActivityForResult(intent, 0) 
        }
    }
      
      // this called after child activity finishes.
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
  
        if (requestCode == 0) {
            if (resultCode == RESULT_OK) {
                // Get the result from intent
                val result = intent.getStringExtra("result")
                // set the result to the text view
                findViewById<TextView>(R.id.textView).text = result
            }
        }
    }
}

Paso 4 : XML para actividad infantil

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"
    tools:context=".ChildActivity">
  
    <EditText
        android:id="@+id/etChild"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="15dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.444"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.263" />
  
    <Button
        android:id="@+id/btnChild"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Send data to MainActivity"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.496"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/etChild"
        app:layout_constraintVertical_bias="0.241" />
    
</androidx.constraintlayout.widget.ConstraintLayout>

Paso 5: Código siguiente para el archivo ChildActivity.kt

Kotlin

package com.ayush.gfg_exit
  
import android.app.Activity
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
  
class ChildActivity : AppCompatActivity() {
    lateinit var etChild: EditText
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_child)
  
        etChild = findViewById(R.id.etChild)
        findViewById<Button>(R.id.btnChild).setOnClickListener {
            val result = etChild.text.toString()
            val intent = Intent()
            intent.putExtra("result", result)
            setResult(Activity.RESULT_OK, intent)
            finish()
        }
    }
}

Así que nuestra aplicación está lista.

Producción:

Publicación traducida automáticamente

Artículo escrito por ayushpandey3july y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *