Ich habe das folgendermaßen gemacht:
erste Schnittstelle herstellen
interface NavigationInterface {
fun closeActivity()
}
Als Nächstes stellen Sie sicher, dass die Aktivität die Schnittstelle implementiert und die Schnittstellenmethode(n) überschreibt.
class NotesActivity : AppCompatActivity(), NavigationInterface {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_notes)
setSupportActionBar(findViewById(R.id.toolbar))
}
override fun closeActivity() {
this.finish()
}
}
dann stellen Sie sicher, dass Sie einen Interface-Listener im Fragment erstellen
private lateinit var navigationInterface: NavigationInterface
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
//establish interface communication
activity?.let {
instantiateNavigationInterface(it)
}
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_notes_info, container, false)
}
private fun instantiateNavigationInterface(context: FragmentActivity) {
navigationInterface = context as NavigationInterface
}
dann können Sie solche Anrufe tätigen:
view.findViewById<Button>(R.id.button_second).setOnClickListener {
navigationInterface.closeActivity()
}