我想使静态功能与警报对话框返回布尔值。
在C#中,它看起来像:
DialogResult dialogResult = MessageBox.Show("Sure", "Some Title", MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
{
//do something
}
else if (dialogResult == DialogResult.No)
{
//do something else
}
在Kotlin中,我有一个带有同伴对象的类
class Dialog {
companion object {
fun question(context: Context, title: String, message: String) {
AlertDialog.Builder(context).apply {
setIcon(R.drawable.ic_question)
setTitle(title)
setMessage(message)
setPositiveButton("YES", DialogInterface.OnClickListener { dialog, which ->
})
setNegativeButton("NO", DialogInterface.OnClickListener { dialog, which ->
})
}.show()
}
}
}
我想从问题函数返回布尔结果。
我想在我的Activity中使用此函数,如下所示:
if(Dialog.question(this,"Title", "Message")) {
//something
} else {
//something
}
这可能吗?
1条答案
按热度按时间cnh2zyt31#
是的,有可能。
您需要:
这是我的代码中的实现(测试和工作)
实施:
用DialogFragment扩展Dialog.kt类,使代码适应这个类并创建接口
在正/负侦听器lambdas中,初始化接口并发送布尔值
转到您的活动并使用您的界面扩展它
现在最后,覆盖活动中的接口以运行所需的代码
请让我知道这是否解决了你的问题,如果没有,请尝试更新你的问题,我会通过更新我的答案来帮助你,快乐编码!