实现两个Activity跳转并传输和显示数据

本文介绍如何在Android应用中实现两个Activity之间的跳转及数据传递。通过实例演示了UI设计、逻辑编写等步骤,并利用自定义对象进行数据传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在学习android stdio的学习过程中遇到过一些问题,也总结了一些常见的现象,这篇文章可以帮助大家了解怎么实现两个两个Activity跳转并传输和显示数据,页面设计有点简陋,大家可以按照自己的需求在其中添加对应的控件,主要是需要学会使用的方法。

第一步:首先完成两个界面的UI设计

activity.main.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/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="输入内容"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintEnd_toEndOf="parent"
        android:text="点击跳转"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editText"></Button>

</androidx.constraintlayout.widget.ConstraintLayout>

activity.text.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=".TextActivity">
    <TextView
        android:id="@+id/textview1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="显示传递的内容"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

第二步完成Activity的逻辑设计

 编写MainActivity的函数逻辑

package com.example.shijian;

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;

public class MainActivity extends AppCompatActivity {
    private EditText editText;
    private Button btn1;
    private Save save;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        link();//绑定控件的函数
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent();
                //初始化一个类
                save = new Save();
                //获取EditText中输入的内容并添加到save对象中
                save.setText(editText.getText().toString());
                //传输对象
                intent.putExtra("cunchu", save);
                //跳转到第二个页面
                intent.setClass(MainActivity.this, TextActivity.class);
                startActivity(intent);
            }
        });
    }

    //绑定控件
    private void link() {
        editText = findViewById(R.id.editText);
        btn1 = findViewById(R.id.btn1);
    }

}

创建一个工具类,用于携带数据,Save.class

package com.example.shijian;

import java.io.Serializable;
//创建一个对象来携带数据
public class Save implements Serializable {
private String text;

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    public Save() {

    }
}

完成第二个页面的逻辑设计TextActivity

package com.example.shijian;

import androidx.appcompat.app.AppCompatActivity;

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

public class TextActivity extends AppCompatActivity {
    TextView textView1;
    private Save save;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_text);
        //这里将绑定控件写成函数是为了减少主函数的内容,便于多个控件的绑定
        link();
        //获取传输的对象
        Intent intent=getIntent();
        //按照name获取对象中对应的数据
        save= (Save) intent.getSerializableExtra("cunchu");
        textView1.setText(save.getText());
    }

    private void link() {
        textView1 = findViewById(R.id.textview1);
    }

}

完成的效果如下图所示

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值