Como passar informação entre Activities em Kotlin
Android Básico Kotlin

Como passar informação entre Activities em Kotlin





Nesse tutorial vou assim descrever Como passar informação entre Activities em Kotlin para que a nova activity que foi iniciada receber as informações.

Primeiramente vamos utilizar um projeto já criado no blog que é o projeto Como criar uma Activity no Android Studio.

Logo após ter aberto nosso projeto criado anteriormente vamos modificar a programação desse projeto para que fique como a seguir.

Então vamos começar alterando o arquivo activity_main para que tenha 2(dois) campos de EditText e um botão para enviar as informações para a NovaActivity.

activity_main

<?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">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_margin="20dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Nome:"/>
        <EditText
            android:id="@+id/etName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Idade:"/>
        <EditText
            android:id="@+id/etAge"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="number"/>
        <Button
            android:id="@+id/btnOpenActivity"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Enviar" />
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

As informações que vão ser enviadas são o nome e a idade da pessoa sendo uma String e um Int.

Depois de ter alterado a activity_main vamos então alterar a nossa activity_nova para poder imprimir na tela o resultado assim deixando da seguinte forma.





activity_nova

<?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=".NovaActivity">
    <TextView
        android:id="@+id/tvNova"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="NovaActivity"
        android:textSize="25sp"
        android:gravity="center"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

Agora chegou a hora de modificarmos nosso código para que envie as informações pela intent do nosso arquivo MainActivity com a função putExtra assim como descrito a seguir.

MainActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        btnOpenActivity.setOnClickListener {
            val intent = Intent(this, NovaActivity::class.java)
            intent.putExtra("name", etName.text.toString())
            intent.putExtra("age", etAge.text.toString().toInt())
            startActivity(intent)
        }
    }
}

Logo depois de alterar a MainActivity enviando os dados pegos pelo EditText vamos então pegar os dados e imprimir na tela eles com a função getStringExtra para pegar uma String e getIntExtra para pegar o número Inteiro no nosso arquivo NovaActivity.

NovaActivity

class NovaActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_nova)
        tvNova.text = "Nome: "+intent.getStringExtra("name")+"\nIdade: "+intent.getIntExtra("age", 0)
    }
}

Por fim vamos assim compilar e executar nosso projeto para ver o aplicativo funcionando.

Então digite o nome e a idade e deve aparecer na NovaActivity as informações digitadas.

Foi criado um gist desse projeto para ajudar e para clonar o repositório digite o seguinte com o programa git.

[[email protected] ~]$ git clone https://github.com/uware-com-br/como-passar-informacao-entre-activities-em-kotlin

Assim você terá o nosso repositório e pode executar a aplicação a partir dele.

Enfim espero poder ter ajudado com mais este tutorial sobre Como passar informação entre Activities em Kotlin.





Rodrigo Leutz
Desenvolvedor Web e Android ( Kotlin e Java )
https://uware.com.br