进行下一次导入:
import androidx.appcompat.app.AlertDialog
并创建对话框如下:
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val adb = AlertDialog.Builder(activity!!)
.setTitle(R.string.actions_rename_connection)
.setPositiveButton(R.string.actions_ok, this)
.setNegativeButton(R.string.actions_cancel, this)
val view = LayoutInflater.from(activity).inflate(R.layout.dialog_edit_name, null)
val dialog = adb.setView(view).create()
dialog?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
return dialog
}
但是我对 Activity 不满意!!
。
例如,通过另一个导入,我创建如下对话框:
import android.app.AlertDialog
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return AlertDialog.Builder(activity, R.style.MaterialThemeDialog)
.setTitle(R.string.in_app_settings_language)
.setPositiveButton(R.string.actions_ok) { _, _ -> presenterContract.onOkClick() }
.setNegativeButton(R.string.actions_cancel) { _, _ -> closeView() }
.create()
}
问:有一些解决方案可以在 androidx 中使用 activity
吗?
最佳答案
android.app.AlertDialog 使用@Nullable Activity 。 IDE 并不因为这个原因而生气使用 Activity。
但是
androidx.appcompat.app.AlertDialog 使用@NonNull Activity 。你应该使用!或空检查 Activity
我认为你应该这样使用它
activity?.let {
AlertDialog.Builder(it, R.style.MaterialThemeDialog)
.setTitle(R.string.in_app_settings_language)
.setPositiveButton(R.string.actions_ok) { _, _ -> presenterContract.onOkClick() }
.setNegativeButton(R.string.actions_cancel) { _, _ -> closeView() }
.create()
}
关于android - 如何在 androidx.appcompat 中创建 AlertDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56168026/