Listener wird nicht initialisiert

  • Antworten:5
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 459

04.08.2021, 20:05:01 via Website

Hallo zusammen

Ich möchte aus einem Fragment heraus ein Dialogfragment aufrufen.

package ch.robbisoft.klassennotfall

import android.app.AlertDialog
import android.app.Dialog
import android.content.Context
import android.content.DialogInterface
import android.os.Bundle
import androidx.fragment.app.DialogFragment

class DialogFrag : DialogFragment() {

private lateinit var horcher :DialogInterface.OnClickListener

override fun onAttach(context: Context) {
    super.onAttach(context)
    if (context is DialogInterface.OnClickListener){
        horcher = context
    }
}

override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
    val dialog = AlertDialog.Builder(requireContext())
    dialog.setTitle(R.string.dia_titel)
    dialog.setMessage(R.string.dia_meldung)
    dialog.setCancelable(false)
    dialog.setPositiveButton(R.string.dia_ja, horcher)
    dialog.setNegativeButton(R.string.dai_nein, horcher)
    return dialog.create()
}

companion object{
    val TAG = DialogFrag::class.simpleName
}

}

Wenn ich den Dialog mit

frage = DialogFrag()
        frage.show(getParentFragmentManager(), DialogFrag.TAG)

Aufrufe, stürzt die App ab mit der Meldung, dass der horcher nicht initialisiert wurde.

lateinit property horcher has not been initialized

Ich bin mir nicht ganz sicher, aber könnte es am context liegen, weil ich den Dialog aus einem Fragment aufrufe?
Falls ja was müsste ich ändern damit es geht?

Gruss Renato

Diskutiere mit!
  • Forum-Beiträge: 1.463

05.08.2021, 06:49:34 via Website

Das mit dem Fragment Manager wird nicht stimmen.

Wenn du in einen Fragment bist musst du glaube getChildFragmentManager benutzen.

— geändert am 05.08.2021, 06:57:06

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 459

06.08.2021, 20:15:31 via Website

Ciao Jokel

Mag sein, aber das Problem mit dem Listener lässt sich damit nicht lösen.

Gruss Renato

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 3

07.08.2021, 13:19:26 via Website

Hallo Renato,
in Kotlin kann ich es dir nicht sagen....bin auf java.
Probier doch erstmal den Dialog ohne den Listener aufzurufen. Geht das denn?
Noch dazu fehlen mir bei deinen beiden Buttons auch die Listener...aber eins nach dem anderen...
Gruß
Michael

Hilfreich?
Diskutiere mit!