Coba gunakan antarmuka.
Setiap fragmen yang harus meneruskan data kembali ke aktivitasnya yang mengandung harus menyatakan antarmuka untuk menangani dan meneruskan data. Kemudian pastikan aktivitas Anda yang mengandung mengimplementasikan antarmuka tersebut. Sebagai contoh:
JAWA
Dalam fragmen Anda, deklarasikan antarmuka ...
public interface OnDataPass {
public void onDataPass(String data);
}
Kemudian, hubungkan implementasi kelas yang mengandung antarmuka ke fragmen dalam metode onAttach, seperti:
OnDataPass dataPasser;
@Override
public void onAttach(Context context) {
super.onAttach(context);
dataPasser = (OnDataPass) context;
}
Di dalam fragmen Anda, ketika Anda perlu menangani kelulusan data, sebut saja pada objek dataPasser:
public void passData(String data) {
dataPasser.onDataPass(data);
}
Akhirnya, dalam kegiatan yang mengandung Anda yang mengimplementasikan OnDataPass
...
@Override
public void onDataPass(String data) {
Log.d("LOG","hello " + data);
}
KOTLIN
Langkah 1. Buat Antarmuka
interface OnDataPass {
fun onDataPass(data: String)
}
Langkah 2. Kemudian, hubungkan implementasi kelas yang berisi antarmuka ke fragmen dalam metode onAttach (YourFragment), seperti:
lateinit var dataPasser: OnDataPass
override fun onAttach(context: Context) {
super.onAttach(context)
dataPasser = context as OnDataPass
}
Langkah 3. Di dalam fragmen Anda, ketika Anda perlu menangani kelulusan data, sebut saja pada objek dataPasser:
fun passData(data: String){
dataPasser.onDataPass(data)
}
Langkah 4. Terakhir, dalam aktivitas Anda mengimplementasikan OnDataPass
class MyActivity : AppCompatActivity(), OnDataPass {}
override fun onDataPass(data: String) {
Log.d("LOG","hello " + data)
}