Saya melihat di Panduan Pengembang Fragmen Android bahwa "aktivitas dapat memanggil metode dalam fragmen dengan memperoleh referensi ke Fragmen dari FragmentManager, menggunakan findFragmentById()
atau findFragmentByTag()
."
Contoh berikut menunjukkan cara mendapatkan referensi fragmen, bukan cara memanggil metode tertentu dalam fragmen.
Adakah yang bisa memberi contoh bagaimana melakukan ini? Saya ingin memanggil metode tertentu dalam Fragmen dari Aktivitas induk. Terima kasih.
Jika Anda menggunakan "import android.app.Fragment;" Kemudian gunakan salah satu:
1)
Di mana R.id.example_fragment kemungkinan besar adalah id FrameLayout di dalam tata letak xml Anda. ATAU
2)
Di mana FragTagName adalah nama yang Anda tentukan saat Anda melakukannya:
Jika Anda menggunakan "import android.support.v4.app.Fragment;" Kemudian gunakan salah satu:
1)
ATAU
2)
sumber
Jika Anda menggunakan pustaka dukungan, Anda akan ingin melakukan sesuatu seperti ini:
sumber
((FragmentName) getFragmentManager().findFragmentById(R.id.fragment_id)).methodName();
2. Jika Anda menggunakan Fragmen pustaka dukungan, lakukan hal berikut:
((FragmentName) getSupportFragmentManager().findFragmentById(R.id.fragment_id)).methodName();
sumber
Saya pikir yang terbaik adalah memeriksa apakah fragmen ditambahkan sebelum memanggil metode dalam fragmen. Lakukan sesuatu seperti ini untuk menghindari pengecualian nol.
sumber
Dari fragmen hingga aktivasi:
Dari aktivitas menjadi fragmen:
FragmentManager fm = getSupportFragmentManager ();
Jika Anda menambahkan fragmen melalui kode dan menggunakan string tag saat Anda menambahkan fragmen, gunakan findFragmentByTag sebagai gantinya:
sumber
Pertama Anda membuat metode
fragment
seperti Andadalam diri Anda,
activity
Anda menambahkan initambahkan
onCreate()
metodeterakhir panggil metode di mana Anda ingin memanggil menambahkan ini
coba kode ini
sumber
sumber
Saya tidak tahu tentang
Java
, tetapi diC#
(Xamarin.Android) tidak perlu mencari fragmen setiap kali Anda perlu memanggil metode ini, lihat di bawah:Saya pikir
Java
Anda bisa melakukan hal yang sama.sumber
Anda juga memanggil metode fragmen menggunakan antarmuka seperti
pertama Anda membuat antarmuka
setelah membuat antarmuka, Anda mengimplementasikan antarmuka di fragmen Anda
dan Anda membuat referensi antarmuka dalam aktivitas Anda
sumber
sumber