两个Activity之间数据的传递

本文介绍了一个简单的Android应用程序如何在不同Activity之间传递数据。通过MainActivity启动TheAty,并使用Intent携带字符串数据,TheAty接收并展示该数据。

MainActivity

package com.example.mac.sendargs;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

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


       findViewById(R.id.startAty).setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View view) {
               Intent i =new Intent(MainActivity.this,TheAty.class);
               i.putExtra("data","Hello luka!");
               startActivity(i);
           }
       });
    }

}

SecondActivity(TheAty)

package com.example.mac.sendargs;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class TheAty extends AppCompatActivity {

    private TextView tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);//调用其父类Activity的onCreate方法来实现对界面的图画绘制工作  
        setContentView(R.layout.activity_the_aty);//setContentView(R.layout.activity_the_aty)的作用是加载第二个activity的界面  
        Intent i =getIntent();

        tv=(TextView)findViewById(R.id.tv);//用TextView显示值
        tv.setText(i.getStringExtra("data"));

    }
}

运行程序之后进入主界面:

图1

点击启动另一个activity之后出现如下界面,则数据传递成功:

图2

当修改了mainactivity中的

i.putExtra("data","Hello April!");

就会发现改变数据,也实现了传递。

图3

在 Android 应用开发中,Activity 之间数据传递是常见的需求。通常可以通过 `Intent` 对象实现这一功能。以下是具体的实现方法和验证步骤。 ### 方法 #### 使用 Intent 传递数据 在 Android 中,可以通过 `Intent` 的 `putExtra()` 方法将数据附加到目标 Activity 中。例如,在 `MainActivity` 中创建一个按钮点击事件,并通过 `Intent` 将数据传递到另一个 Activity: ```java // MainActivity.java public class MainActivity extends AppCompatActivity { private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(MainActivity.this, Main22Activity.class); intent.putExtra("data", "哈哈哈"); startActivity(intent); } }); } } ``` 在目标 Activity(如 `Main22Activity`)中,可以通过 `getIntent()` 获取传递数据: ```java // Main22Activity.java public class Main22Activity extends AppCompatActivity { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main22); textView = findViewById(R.id.textView); Intent intent = getIntent(); String data = intent.getStringExtra("data"); textView.setText(data); } } ``` #### 配置 Logcat Filter 为了更好地调试应用,可以在 Android Studio 中配置 Logcat Filter 来过滤日志信息。打开 Android Studio,进入 **Logcat** 窗口,点击右上角的 **+** 按钮,选择 **Edit Filter Configuration**,输入过滤条件,如包名或日志标签,然后保存[^1]。 ### 验证步骤 #### 创建两个 Activity 1. 在项目中创建两个 Activity:右键单击 app 文件夹,然后选择 New > Activity 来创建这些 Activity。 2. 在 `AndroidManifest.xml` 文件中确保两个 Activity 已经被正确声明。 #### 编写代码 1. 在 `MainActivity` 中添加一个按钮,并为其设置点击事件。 2. 在点击事件中使用 `Intent` 启动第二个 Activity,并通过 `putExtra()` 方法传递数据。 3. 在目标 Activity 中接收数据并显示出来。 #### 测试 1. 运行应用,点击按钮触发 `Intent`。 2. 检查目标 Activity 是否能够正确显示传递过来的数据。 3. 使用 Logcat Filter 查看相关的日志输出,确保没有错误发生。 通过上述步骤,可以有效地验证 Android Studio 中两个 Activity 之间数据传递的功能是否正常工作。在整个过程中,利用 `Intent` 进行数据传递是最核心的部分,而 Logcat Filter 则有助于提高调试效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值