问题描述
我有3个进度注册活动。我在第一个活动中获取信息,然后尝试直接将第三个活动发送到使用Firebase进行注册。我尝试了各种研究方法,但无法弄清楚。
这是我的第一项活动
signUpNextButton.setonClickListener {
val name = signUpFullname.text.toString()
val email = signUpEmail.text.toString()
val password = signUpPassword.text.toString()
val repassword = signUpPasswordRepeat.text.toString()
//Sending datas with this method
val intent = Intent(this,SignUp_Page3::class.java)
intent.putExtra("user_email",email)
intent.putExtra("user_password",password)
startActivity(Intent(this,SignUp_Page2::class.java))
}
这是第二个
signUpGetCode.setonClickListener {
startActivity(Intent(this,SignUp_Page3::class.java)) }
这是最后一个:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.signup3)
val intent = getIntent()
val email = intent.getStringExtra("user_email")
val password = intent.getStringExtra("user_password")
signUpComplete.setonClickListener {
//Firebase Authentication to create user
FirebaseAuth.getInstance()
.createuserWithEmailAndPassword(
email,password
)
.addOnCompleteListener {
if (it.isSuccessful) {
startActivity(Intent(this,LogIn_Page::class.java))
Toast.makeText(
this,"Account successfully created,please log in.",Toast.LENGTH_LONG
).show()
finish()
} else {
Toast.makeText(this,"Something went wrong.",Toast.LENGTH_SHORT).show()
return@addOnCompleteListener
}
}
}
解决方法
您似乎正在通过Intent
转到第二页,但从未从第二页转到第三页。
首先在第二页和第三页中检索信息。
private var email: String? = null
private var password: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (intent != null) {
email = intent.getStringExtra("user_email")
password = intent.getStringExtra("user_password")
} else if (savedInstanceState != null){
email = savedInstanceState.getString("user_email")
password = savedInstanceState.getString("user_password")
}
//TODO rest of onCreate
}
尝试将信息传递到第三页Intent
。
在将此数据存储在Intent
中时要小心。如果您没有在第二页和第三页中实现onSaveInstanceState
,那么您将轮流丢失数据。
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putString("user_email",email)
outState.putString("user_password",password)
}
还可以考虑将静态字符串常量用于您的键,这将使一切变得更易于管理。
,第一个:
signUpNextButton.setOnClickListener {
val name = signUpFullname.text.toString()
val email = signUpEmail.text.toString()
val password = signUpPassword.text.toString()
//Sending datas with this method
val intent = Intent(this,SignUp_Page2::class.java)
intent.putExtra("user_email",email)
intent.putExtra("user_password",password)
//Starting another activity
startActivity(intent)
}
second1:
private var email: String? = null
private var password: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.signup2)
val intent = getIntent()
if (intent != null) {
email = intent.getStringExtra("user_email")
password = intent.getStringExtra("user_password")
} else if (savedInstanceState != null){
email = savedInstanceState.getString("user_email")
password = savedInstanceState.getString("user_password")
}
signUpGetCode.setOnClickListener {
val phone = signUpPhoneNumber.text.toString()
startActivity(Intent(this,SignUp_Page3::class.java))
}
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putString("user_email",email)
outState.putString("user_password",password)
}
third1:
private var email: String? = null
private var password: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.signup3)
val intent = getIntent()
if (intent != null) {
email = intent.getStringExtra("user_email")
password = intent.getStringExtra("user_password")
} else if (savedInstanceState != null) {
email = savedInstanceState.getString("user_email")
password = savedInstanceState.getString("user_password")
}
signUpComplete.setOnClickListener {
Toast.makeText(this,email + password,Toast.LENGTH_SHORT).show()
}
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putString("user_email",password)
}
Toast消息给了我null null输出。
,FirebaseAuth.getInstance()
.createUserWithEmailAndPassword(
email.toString(),password.toString()
)
.addOnCompleteListener {
if (it.isSuccessful) {
startActivity(Intent(this,LogIn_Page::class.java))
Toast.makeText(
this,"Account successfully created,please log in.",Toast.LENGTH_LONG
).show()
} else {
Toast.makeText(this,"Something went wrong.",Toast.LENGTH_SHORT).show()
return@addOnCompleteListener
}
}
这向我返回“出了点问题”