简体   繁体   English

将数据发送到 Android Studio 中的其他活动时出现问题

[英]Problem sending data to other activity in Android Studio

I want to send data from three activities to the last activity, how can I do我想将数据从三个活动发送到最后一个活动,我该怎么做

1. First Activity 1. 第一个活动

else {
//first activity want transfer data last activity
        Intent intent = new Intent(Register.this, Register2.class);
        intent.putExtra("name", reg_name);
        intent.putExtra("surname", reg_surname);
        intent.putExtra("email", reg_email);
        startActivity(intent);
    }

2. Second Activity 2. 第二个活动

else {
//second activity transfer data last activity
        Intent intent = new Intent(Register2.this, PhoneNumberOtp.class);
        intent.putExtra("username", reg_username);
        intent.putExtra("password", reg_password);
        startActivity(intent);
    }

3. Third Activity 3. 第三次活动

 else {
//third activity transfer data last activity
        Intent intent = new Intent(PhoneNumberOtp.this, OTPVerification.class);
        intent.putExtra("phoneNumber", reg_phone_number);
        startActivity(intent);
    }

Last Activity上次活动

else {
        Intent intent = new Intent(OTPVerification.this, HomeActivity.class);
        //get data register activity
        String name = getIntent().getExtras().getString("name");
        String surname = getIntent().getExtras().getString("surname");
        String email = getIntent().getExtras().getString("email");
        String username = getIntent().getExtras().getString("username");
        String password = getIntent().getExtras().getString("password");

Extras you put on an intent are not automatically passed along to subsequent activities after the first one they are sent to directly.您在意图上添加的额外内容不会在它们被直接发送到第一个活动之后自动传递给后续活动。 If you have some data you want to pass through multiple activities, you have to re-add it to the new sending intent for each step.如果您有一些数据要通过多个活动传递,则必须将其重新添加到每个步骤的新发送意图中。 For example:例如:

First第一的

Intent intent = new Intent(UserActivity.this, AccountActivity.class);
intent.putExtra("name", reg_name);
intent.putExtra("email", reg_email);
startActivity(intent);

Second第二

Intent intent = new Intent(AccountActivity.this, RegisterActivity.class);

// get the received data and add it to the new intent
Intent recv = getIntent();
if( recv != null ) {
    String name = recv.getStringExtra("name");
    intent.putExtra("name", name);

    String email = recv.getStringExtra("email");
    intent.putExtra("email", email);
}

// then add any new data
intent.putExtra("username", reg_username);
intent.putExtra("password", reg_password);

startActivity(intent);

Third第三

// RegisterActivity now has 4 strings available
Intent recv = getIntent();
if( recv != null ) {
    String name = recv.getStringExtra("name");
    String email = recv.getStringExtra("email");
    String username = recv.getStringExtra("username");
    String password = recv.getStringExtra("password");
}

In the example you posted, the last activity would only have access to phoneNumber , since that's all you passed it from the third activity.在您发布的示例中,最后一个活动只能访问phoneNumber ,因为这是您从第三个活动传递的所有内容。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM