Android 如果对话框仅在主活动首次在Kotlin中执行时出现,我该怎么办?

Android 如果对话框仅在主活动首次在Kotlin中执行时出现,我该怎么办?,android,kotlin,Android,Kotlin,我想设置我第一次进入主屏幕时只显示一次的bottomsheetDialog。 当前,会在onStart函数中创建一个对话框,但如果执行此操作,即使从另一个活动切换到主活动,也会显示该对话框。 检查我的以下代码: override fun onStart() { super.onStart() val notifyBottomDialogFragment: BottomNotifyFragment = BottomNotifyFragment { when (it

我想设置我第一次进入主屏幕时只显示一次的
bottomsheetDialog
。 当前,会在
onStart
函数中创建一个对话框,但如果执行此操作,即使从另一个活动切换到主活动,也会显示该对话框。 检查我的以下代码:

override fun onStart() {
    super.onStart()

    val notifyBottomDialogFragment: BottomNotifyFragment = BottomNotifyFragment {
        when (it)
        {

        }
    }
    notifyBottomDialogFragment.show(supportFragmentManager, notifyBottomDialogFragment.tag)
    notifyBottomDialogFragment.isCancelable = false
}

可能尝试在
OnCreate
函数中显示一个对话框。并保存bool值以检查是否第一次创建活动(例如,用户旋转手机或进入分屏模式):


可能尝试在
OnCreate
函数中显示一个对话框。并保存bool值以检查是否第一次创建活动(例如,用户旋转手机或进入分屏模式):


您可以在SharedReference中使用布尔值,如下所示:

    val prefs = PreferenceManager.getDefaultSharedPreferences()
    prefs.edit().putBoolean("hasShownDialog", true).apply();
然后,在onStart或onCreate中,您可以检查首选项,如下所示:

    val prefs = PreferenceManager.getDefaultSharedPreferences()
    // you have to have a default value here
    hasShownDialog = prefs.getBoolean("hasShownDialog",false)
    if(!hasShownDialog){
        showDialog()
    }

您可以在SharedReference中使用布尔值,如下所示:

    val prefs = PreferenceManager.getDefaultSharedPreferences()
    prefs.edit().putBoolean("hasShownDialog", true).apply();
然后,在onStart或onCreate中,您可以检查首选项,如下所示:

    val prefs = PreferenceManager.getDefaultSharedPreferences()
    // you have to have a default value here
    hasShownDialog = prefs.getBoolean("hasShownDialog",false)
    if(!hasShownDialog){
        showDialog()
    }

考虑保存表单显示的事实,可以是共享首选项,也可以是一些文件。然后在下一个开始,看看它是否显示在前面。考虑保存一个事实,即显示表,可以是共享首选项,或者一些文件。然后在下一个onStart上,查看它之前是否显示过。