如何在单独的 class 中创建一个函数并从 MainActivity 中调用它
How can I create a function in separate class and call it from MainActivity
我有一个功能:
fun showDialogWindow(){
val builder = AlertDialog.Builder(this)
val inflater = layoutInflater
val dialogLayout = inflater.inflate(R.layout.dialog_window, null)
val editText = dialogLayout.findViewById<EditText>(R.id.change_balance_edittext)
with(builder) {
setPositiveButton("Ok"){dialog, which ->
Values.balance = editText.text.toString().toFloat()
}
setNegativeButton("Cancel"){dialog, which ->
}
setView(dialogLayout)
show()
}
}
我想单独创建它 Class,当我尝试这样做时,我遇到了一些错误:第 2 行 'this' 未在此上下文中定义,第 3 行 未解决的引用:layoutInflater 和第 13 行 重载分辨率歧义 。在 MainActivity 中,乐趣正在发挥作用。我该如何解决?
首先,我会尝试了解该语言的工作原理以及您可以在何处调用变量。
例如,“this”错误是因为当您在 MainActivity 中调用“this”时,它获得 activity 类型,可能是“AppCompatActivity”。在调用新文件时,需要在函数中将值“this”作为参数传递。
fun showDialogWindow(mainActivity : Context){
val builder = AlertDialog.Builder(mainActivity )
val inflater = layoutInflater
val dialogLayout = inflater.inflate(R.layout.dialog_window, null)
val editText = dialogLayout.findViewById<EditText>(R.id.change_balance_edittext)
with(builder) {
setPositiveButton("Ok"){dialog, which ->
Values.balance = editText.text.toString().toFloat()
}
setNegativeButton("Cancel"){dialog, which ->
}
setView(dialogLayout)
show()
}
}
我有一个功能:
fun showDialogWindow(){
val builder = AlertDialog.Builder(this)
val inflater = layoutInflater
val dialogLayout = inflater.inflate(R.layout.dialog_window, null)
val editText = dialogLayout.findViewById<EditText>(R.id.change_balance_edittext)
with(builder) {
setPositiveButton("Ok"){dialog, which ->
Values.balance = editText.text.toString().toFloat()
}
setNegativeButton("Cancel"){dialog, which ->
}
setView(dialogLayout)
show()
}
}
我想单独创建它 Class,当我尝试这样做时,我遇到了一些错误:第 2 行 'this' 未在此上下文中定义,第 3 行 未解决的引用:layoutInflater 和第 13 行 重载分辨率歧义 。在 MainActivity 中,乐趣正在发挥作用。我该如何解决?
首先,我会尝试了解该语言的工作原理以及您可以在何处调用变量。
例如,“this”错误是因为当您在 MainActivity 中调用“this”时,它获得 activity 类型,可能是“AppCompatActivity”。在调用新文件时,需要在函数中将值“this”作为参数传递。
fun showDialogWindow(mainActivity : Context){
val builder = AlertDialog.Builder(mainActivity )
val inflater = layoutInflater
val dialogLayout = inflater.inflate(R.layout.dialog_window, null)
val editText = dialogLayout.findViewById<EditText>(R.id.change_balance_edittext)
with(builder) {
setPositiveButton("Ok"){dialog, which ->
Values.balance = editText.text.toString().toFloat()
}
setNegativeButton("Cancel"){dialog, which ->
}
setView(dialogLayout)
show()
}
}