Android 无法通过意图在活动之间传递数据
我正在尝试在活动之间传递数据 活动一:输入电话号码并将其传递给下一个活动 活动二:通过intent获取电话号码并向该号码发送OTP 第一个活动代码: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
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在那里,但这也不起作用