Android 无法通过意图在活动之间传递数据

Android 无法通过意图在活动之间传递数据,android,android-intent,Android,Android Intent,我正在尝试在活动之间传递数据 活动一:输入电话号码并将其传递给下一个活动 活动二:通过intent获取电话号码并向该号码发送OTP 第一个活动代码: public class PhoneVerification extends AppCompatActivity { private EditText edMobileNumber; private Button btnContinue; @Override protected void onCreate(Bundle savedInstance

我正在尝试在活动之间传递数据

活动一:输入电话号码并将其传递给下一个活动

活动二:通过intent获取电话号码并向该号码发送OTP

第一个活动代码:

public class PhoneVerification extends AppCompatActivity {
private EditText edMobileNumber;
private Button btnContinue;

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

    edMobileNumber = findViewById(R.id.edMobileNumber);
    btnContinue = findViewById(R.id.btnContinue);



    btnContinue.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String phoneNumber = edMobileNumber.getText().toString();
            Intent intent = new Intent(PhoneVerification.this, OTPVerificationActivity.class);
            intent.putExtra("phone",phoneNumber);
            startActivity(intent);
        }
    });

}}
第二个活动代码:

public class OTPVerificationActivity extends AppCompatActivity {

private TextView mTvResend, mTvTimer;
private ImageView mIvBack;
String verificationCodeSentToUser;

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

    
    mTvResend = findViewById(R.id.tvResend);
    mTvTimer = findViewById(R.id.tvTimer);
   
    // OTP Process
    String phoneNumber = getIntent().getStringExtra("phone");
    sendVerificationCode(phoneNumber);
    Toast.makeText(this, phoneNumber, Toast.LENGTH_SHORT).show();
    Log.d("Phone", "onCreate: " + phoneNumber);

    // Code Resend
    new CountDownTimer(60000, 1000) { // adjust the milli seconds here

        @SuppressLint("DefaultLocale")
        public void onTick(long millisUntilFinished) {
            mTvTimer.setText(String.format("%d seconds left",
                    TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
                            TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
        }

        public void onFinish() {
            mTvTimer.setVisibility(View.GONE);
            mTvResend.setVisibility(View.VISIBLE);
        }
    }.start();}}

问题是我没有从第一个活动中获得我传递的电话号码。第一个活动使用这种方式发送数据

 Intent intent = new Intent(PhoneVerification.this, OTPVerificationActivity.class);
 String value ="111111";
 intent.putExtra("phone", value);
接收数据的第二个活动

    String result;
    Bundle extras = getIntent().getExtras();
    if (savedInstance != null) {
            result= (String) savedInstance.getSerializable("phone");
    } else {
          if(extras != null) {
                   result= extras.getString("phone");
         }
    }

首先检查数字是否不为空,然后转到下一个活动,否则请留在页面中您有错误ia您必须不签入按钮单击事件此类情况,以便他们显然无法在第二个活动中获得数字…

sendVerificationCode(phoneNumber);这是API调用吗?是的,此方法发送OTP。发送OTP是下一个步骤,我对方法调用进行了注释,并检查了toast和日志。。电话号码不存在。注释sendVerificationCode(电话号码);这一行并再次检查它的保存状态。。我在IDE中没有得到任何建议。相反,savedInsatncestate在那里,但这也不起作用