java - 在两个 Activity 之间传输数据

标签 java android

<分区>

我正在尝试在两个不同的 Activity 之间发送和接收数据。我在该网站上看到了其他一些问题,但没有任何问题涉及保留头等舱的状态。

例如,如果我想从 A 类发送一个整数 X 到 B 类,然后对整数 X 执行一些操作,然后将它发送回 A 类,如何执行此操作?

是不是像下面的代码那么简单?

A类

 Intent i = new Intent(this, ActivityB.class);
 i.putExtra("Value1", 1);
 startActivity(i);

并接收 B 类的响应:

Bundle extras = getIntent().getExtras();
int value1 = extras.getint("Value1",0);

在 B 类中

Bundle extras = getIntent().getExtras();
int value1 = extras.getint("Value1",0);
//Do some operations on value1 such as maybe adding or subtracting
Intent i = new Intent(this, ActivityA.class);
i.putExtra("Value1", 1);
startActivity(i);

这似乎不正确,因为我只是想切换回 Activity A 并在操作完成后从 Activity B 接收数据(也许 Activity B 中的一个按钮开始对接收到的数据进行操作,然后将其发送回 Activity一个?)

最佳答案

在第一个 Activity 中:

Intent i = new Intent(this, ActivityB.class);
i.putExtra("Value1", "1");
startActivityForResult(i, 100);

接收数据如:

Intent receivedIntent = getIntent();
if(receiveIntent!=null){
   String value1 = receiveIntent.getStringExtra("Value1");
}

一些操作之后在第二个 Activity 中:

Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();

FirstActivity 中处理结果:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 100) {
        if(resultCode == Activity.RESULT_OK){
            String result=data.getStringExtra("result");
        }
    }
}

关于java - 在两个 Activity 之间传输数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46731559/

相关文章:

java - 从 WSDL 生成的客户端能否生成排除可选 header 元素的请求?

Java:如何询问用户是否想再玩一次

java - Java中仅提取列表中重复的元素

android - SQLite ExecSql 不能从文件中工作

Android:更新 https 证书导致 SSLPeerUnverifiedException

java - 适用于 Android 的 OpenCL Java 绑定(bind)

java - JSONObject.getJSONArray() 无法识别数组

Android Studio 引用库

c# - 我可以使用什么技术为我的 C# 应用程序编写一个 View ?

android - Sms BroadCastReceiver 泄漏内存