如何在单独的 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()
    }
}