如何在Kotlin中将一个值从一个函数传递到另一个函数?
你好强> 所以,我的问题是在一个名为如何在Kotlin中将一个值从一个函数传递到另一个函数?,kotlin,Kotlin,你好 所以,我的问题是在一个名为showAuth()的函数中有两个字符串值,我需要在另一个名为setup()的函数中调用它们两个函数位于同一活动文件中。我该怎么做 谢谢,如果这是个愚蠢的问题,我很抱歉,我是新来的^^ createActivity class createActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInst
showAuth()
的函数中有两个字符串值,我需要在另一个名为setup()
的函数中调用它们两个函数位于同一活动文件中。我该怎么做
谢谢,如果这是个愚蠢的问题,我很抱歉,我是新来的^^
createActivity
class createActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_create)
setup() //<---- this one says "No value passed for parameter 'email'"
}
showAuth()
private-fun-showAuth(email:String,provider:ProviderType){/问题出在setup()函数中。请从setup()方法中删除这两个参数“email:String,provider:ProviderType”。应该是这样的
private fun setup(){
iniciarSesionButton.setOnClickListener{
if (inputEmail.text.isNotEmpty() && inputContraseña.text.isNotEmpty()){
FirebaseAuth.getInstance().createUserWithEmailAndPassword(inputEmail.text.text.oString(), inputContraseña.text.toString()) .addOnCompleteListener {
val db = FirebaseFirestore.getInstance()
db.collection("users").document(email).set(
hashMapOf("provider" to provider, "username" to inputUsername.text.toString())
)
if(it.isSuccessful){
showAuth(it.result?.user?.email ?: "", ProviderType.Email)
}
else{
showError()
}
}
}
}}
将setup
定义为具有两个参数,即fun setup(valueA:String,valueB:String)
,在showAuth
中,调用setup
时会传递值,例如setup(firstValue,secondValue)
。或者,在类中创建两个字符串属性。showAuth
可以设置这些属性的值,并且setup
可以引用它们。使用Kotlin命名约定。现在可以了吗?您好!!感谢您的快速回复!我正在测试它,但是当我在createActivity上调用setup()时,它显示setup()没有得到这两个字符串。“它说setup()没有得到这两个字符串”这个短语毫无意义,你是什么意思?你能展示一下你的代码是什么样子吗?我编辑了这篇文章,它就在上面。另外,在createActivity上,我做了一个评论。这样做不会将这两个字符串传递给setup()是的,您正在根据代码从setup()方法中的edittext字段(“inputEmail.text.isNotEmpty()&&inputContraseña.text.isNotEmpty()”)中获取这两个字符串。那么为什么需要传递这些字符串呢?如果问题已解决,请接受此答案。
private fun showAuth(email: String, provider: ProviderType){ //<--
val authIntent = Intent(this, AuthActivity::class.java).apply {
putExtra("email",email)
putExtra("provider",provider.name)
setup(email,provider)
}
startActivity(authIntent)
}
fun showAuth( ){
setup("v1", "v2")
}
fun setup( valueOne : String,valueTwo : String){
}
private fun setup(){
iniciarSesionButton.setOnClickListener{
if (inputEmail.text.isNotEmpty() && inputContraseña.text.isNotEmpty()){
FirebaseAuth.getInstance().createUserWithEmailAndPassword(inputEmail.text.text.oString(), inputContraseña.text.toString()) .addOnCompleteListener {
val db = FirebaseFirestore.getInstance()
db.collection("users").document(email).set(
hashMapOf("provider" to provider, "username" to inputUsername.text.toString())
)
if(it.isSuccessful){
showAuth(it.result?.user?.email ?: "", ProviderType.Email)
}
else{
showError()
}
}
}
}}