将数据发送到另一个 Activity 就是这么简单 - Android?

将数据发送到另一个 Activity 就是这么简单 - Android?

在这篇文章中,我们将学习将数据从一个activity传递到另一个activity。

在这里插入图片描述

android中如何将数据data从一个activity传递到另一个activity?
在 Android 中的 Activity 之间传递数据需要使用 Intent 类。使用 Intent 类的 putExtra 方法,您可以将数据从一个 Activity 发送到 Android 中的另一个 Activity。

intent是用于在 android 中启动 Activity 的类。

现在,让我们看看如何在android中使用intent发送数据。
我将创建一个包含两个activity的简单应用程序。第一个activity包含两个输入字段 (EditText) 和一个按钮button。第一个输入字段用于名称,第二个输入字段用于电子邮件,按钮是确认按钮,按下该按钮会将名称和电子邮件添加到intent(使用 Intent.putExtra() 方法)并启动第二个activity。现在让我们看一下代码。

activity_first.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">

    <EditText
        android:id="@+id/user_name"
        android:layout_width="317dp"
        android:layout_height="54dp"
        android:hint="User name"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.293" />

    <EditText
        android:id="@+id/email"
        android:layout_width="317dp"
        android:layout_height="54dp"
        android:layout_marginTop="40dp"
        android:hint="Email"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/user_name" />

    <Button
        android:id="@+id/btn_confirm"
        android:layout_width="317dp"
        android:layout_height="54dp"
        android:text="Confirm"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/email"
        app:layout_constraintVertical_bias="0.174" />

</androidx.constraintlayout.widget.ConstraintLayout>

FirstActivity.java

package com.example.androidintentexample;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btnConfirm = findViewById(R.id.btn_confirm);
        EditText name = findViewById(R.id.user_name);
        EditText email = findViewById(R.id.email);


        btnConfirm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(getApplicationContext(), MainActivity2.class);
                intent.putExtra("Name", name.getText().toString());
                intent.putExtra("Email", email.getText().toString());
                startActivity(intent);
            }
        });
    }
}
你可以在上面的代码中看到我使用了Intent类的putExtra方法。该方法将名称和值作为参数(名称-值对)。例如,为了将电子邮件输入发送到另一个activity,我使用了名称“Email”电子邮件。我将在第二个activity中引用该名称来获取与该名称关联的值。

activity_second.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=".MainActivity2">

    <TextView
        android:id="@+id/user_name_label"
        android:layout_width="123dp"
        android:layout_height="39dp"
        android:layout_marginTop="156dp"
        android:text="Name :"
        android:textSize="24sp"
        app:layout_constraintEnd_toStartOf="@+id/show_user_name"
        app:layout_constraintHorizontal_bias="0.645"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/show_user_name"
        android:layout_width="224dp"
        android:layout_height="39dp"
        android:layout_marginTop="156dp"
        android:layout_marginEnd="16dp"
        android:text="TextView"
        android:textSize="24sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/email_label"
        android:layout_width="123dp"
        android:layout_height="39dp"
        android:layout_marginStart="24dp"
        android:text="Email :"
        android:textSize="24sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/user_name_label"
        app:layout_constraintVertical_bias="0.128" />

    <TextView
        android:id="@+id/show_email"
        android:layout_width="224dp"
        android:layout_height="39dp"
        android:layout_marginEnd="16dp"
        android:text="TextView"
        android:textSize="24sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/show_user_name"
        app:layout_constraintVertical_bias="0.128" />
</androidx.constraintlayout.widget.ConstraintLayout>

SecondActivity.java

package com.example.androidintentexample;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity2 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        TextView showName = findViewById(R.id.show_user_name);
        TextView showEmail = findViewById(R.id.show_email);

        Intent intent = getIntent();

        showName.setText(intent.getStringExtra("Name"));
        showEmail.setText(intent.getStringExtra("Email"));
    }
}
在这里,我使用了 getIntent 方法来获取 Intent 对象,然后,为了获取数据,我使用了 Intent 类的 getStringExtra() 方法。 getStringExtra 方法将与数据关联的名称(字符串)作为参数。

输出 :

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小云同志你好

谁能书阁下,白首太玄经

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值