Bagaimana saya bisa mengirim data antara fragmen dan aktivitas kontainernya? Apakah ada yang serupa dengan mengirimkan data antar kegiatan melalui maksud?
Saya membaca ini, tetapi tidak banyak membantu:
http://developer.android.com/guide/topics/fundamentals/fragments.html#CommunicatingWithActivity
Jawaban:
Dalam fragmen Anda, Anda dapat menelepon
getActivity()
.Ini akan memberi Anda akses ke aktivitas yang membuat fragmen. Dari sana Anda dapat dengan jelas memanggil segala jenis metode aksesor yang ada dalam aktivitas.
mis. untuk metode yang disebut
getResult()
di Aktivitas Anda:sumber
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 ...
Kemudian, hubungkan implementasi kelas yang mengandung antarmuka ke fragmen dalam metode onAttach, seperti:
Di dalam fragmen Anda, ketika Anda perlu menangani kelulusan data, sebut saja pada objek dataPasser:
Akhirnya, dalam kegiatan yang mengandung Anda yang mengimplementasikan
OnDataPass
...KOTLIN
Langkah 1. Buat Antarmuka
Langkah 2. Kemudian, hubungkan implementasi kelas yang berisi antarmuka ke fragmen dalam metode onAttach (YourFragment), seperti:
Langkah 3. Di dalam fragmen Anda, ketika Anda perlu menangani kelulusan data, sebut saja pada objek dataPasser:
Langkah 4. Terakhir, dalam aktivitas Anda mengimplementasikan OnDataPass
sumber
ActionBar.TabListener
dan harus menambahkan antarmuka tambahan.Pendekatan termudah tetapi tidak Direkomendasikan
Anda dapat mengakses data aktivitas dari fragmen:
Aktivitas:
Pecahan:
sumber
MyActivity
sumber
Melewati data antara fragmen dan aktivitas kontainernya
Aktivitas:
Pecahan:
Membaca nilai dalam fragmen
sumber
Saya tidak tahu apakah ini cara terbaik atau tidak, Bu saya telah mencari di Google cukup lama untuk menemukan bagaimana saya bisa mengirimkan sebuah Bundel dari sebuah fragmen ke aktivitas wadahnya, tetapi yang saya temukan hanyalah mengirim data dari aktivitas ke fragmen. (yang agak membingungkan bagi saya karena saya seorang pemula).
kemudian saya mencoba sesuatu milik saya sendiri yang benar-benar bekerja untuk saya seperti yang saya inginkan. jadi saya akan mempostingnya di sini jika seseorang seperti saya mencari hal yang sama.
// Melewati data dari Fragmen.
// Mendapatkan data dari bundel dari aktivitas kontainernya.
sumber
Antarmuka adalah salah satu solusi terbaik:
Antarmuka lem:
MyActivity:
MyFragment:
sumber
Saya menggunakan AppCompatActivity yang mengimplementasikan Date Listeners. Fragmen datang sebagai keharusan karena saya perlu kode pemilih rentang tanggal. Dan saya juga membutuhkan wadah untuk menerima tanggal yang dipilih untuk mengembalikannya ke aktivitas orang tua.
Untuk aktivitas kontainer, ini adalah deklarasi kelas:
Dan antarmuka untuk panggilan balik:
Callback adalah string karena tanggal adalah params dalam kueri pilih.
Kode untuk fragmen (berdasarkan fragmen tanggal awal):
}
Untuk membuat wadah + fragmen, saya menggunakan ViewPager (AppCompat) dengan kelas kustom yang memperluas FragmentPagerAdapter. Tidak ada dialog.
sumber
Cukup Anda dapat menggunakan EventBus itu mudah dan berfungsi dengan baik
EventBus dalam 3 langkah
Tentukan acara:
public static class MessageEvent { /* Additional fields if needed */ }
Mempersiapkan pelanggan: Deklarasikan dan beri anotasi metode berlangganan Anda, tentukan secara spesifik mode utas:
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) {/* Do something */};
Daftarkan dan batalkan registrasi pelanggan Anda. Misalnya di Android, aktivitas dan fragmen biasanya harus mendaftar sesuai dengan siklus hidupnya:
Posting acara:
EventBus.getDefault().post(new MessageEvent());
sumber
Saya tahu ini mungkin terlambat. Tetapi saya juga selalu bingung dengan pertanyaan ini. Saya membagikan tautan ini ... karena ini mungkin penjelasan terbaik yang pernah saya temukan di web untuk ini. Ini memecahkan Fragmen ke Aktivitas & Fragmen ke Fragmen !
Dipecahkan & Dijelaskan dengan sangat baik
sumber
Ini bekerja untuk saya ..
dalam Aktivitas tambahkan metode ini
dan di Fragment tambahkan baris ini
sumber
sumber
Cara sederhana lain untuk mendapatkan data, diteruskan dari aktivitas lain, dalam sebuah fragmen dalam aktivitas wadah: misalnya:
Di Activity_A Anda, Anda membuat maksud seperti Anda mengirim data (String di sini) ke aktivitas lain:
di Fragmen Anda, terkandung dalam Activity_B Anda:
sumber
getBaseContext()
memberi saya kesalahan berikut:The method getBaseContext() is undefined for the type new View.OnClickListener(){}