alertDialog.show не работает во фрагменте - PullRequest
0 голосов
/ 07 мая 2020

alertDiaolg не работает при ошибке фрагмента в методе builder.show (). вся информация об AllertDialog устарела.

E / AndroidRuntime: FATAL EXCEPTION: main Process: com.example.familyplaner1, PID: 20617 android .view.WindowManager $ BadTokenException: Невозможно добавить окно - нулевой токен недействителен; выполняется ли ваша деятельность? в android .view.ViewRootImpl.setView (ViewRootImpl. java: 935) в android .view.WindowManagerGlobal.addView (WindowManagerGlobal. java: 387) в android .view.WindowManagerImpl.addView (WindowManagerImpl . java: 96) в android .app.Dialog.show (Dialog. java: 344) в android .app.AlertDialog $ Builder.show (AlertDialog. java: 1156) в com. example.familyplaner1.fragments.HomeFragment.noteCreateDialog (HomeFragment.kt: 64) в com.example.familyplaner1.fragments.HomeFragment $ init $ 1.onClick (HomeFragment.kt: 40) в android .view.View.performClick (View . java: 7160) в android .view.View.performClickInternal (View. java: 7137) в android .view.View.access 3500 долларов (View. java: 810) в android .view.View $ PerformClick.run (View. java: 27418) в android .os.Handler.handleCallback (Handler. java: 883) в android .os.Handler.dispatchMessage (Handler. java: 100) в android .os.Looper.l oop (Looper. java: 224) в android .app.ActivityThread.main (ActivityThread. java: 7520) в java .lang.reflect.Method.invoke (собственный метод) на com. android .intern al.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit. java: 539) на com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 950)

 fun noteCreateDialog(view: View) {
        val appContext = requireContext().applicationContext
        val builder = AlertDialog.Builder(appContext)
        val inflater = layoutInflater
        builder.setTitle("edit text")
        val dialogLayout = inflater.inflate(R.layout.dialog_with_text, null)
        val editTextDialog = dialogLayout.findViewById<EditText>(R.id.edit_text_dialog)
        builder.setView(dialogLayout)
        builder.show()
    }
...