我有一個功能:
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()
}
}
我想在單獨的檔案中創建它,當我嘗試這樣做時,我有一些錯誤:在 2 line 'this' is not defined in this context,in 3 Unresolved reference: layoutInflater和 in 13 Overload resolution ambiguity。在 MainActivity 中,樂趣正在發揮作用。我該如何解決?
uj5u.com熱心網友回復:
首先,我會嘗試查看該語言的作業原理以及您可以在哪里呼叫變數。
例如,“this”錯誤是因為當您在 MainActivity 中呼叫“this”時,它獲取活動型別,可能是“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()
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/383377.html
