Voici comment j'ai procédé :
première interface de fabrication
interface NavigationInterface {
fun closeActivity()
}
Ensuite, assurez-vous que l'activité implémente l'interface et surcharge les méthodes de l'interface.
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()
}
}
alors assurez-vous de créer l'interface listener dans le fragment
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
}
alors vous pouvez faire des appels comme ça :
view.findViewById<Button>(R.id.button_second).setOnClickListener {
navigationInterface.closeActivity()
}