Melaksanakan Antara Muka untuk Komunikasi antara Fragmen dan Penyesuai
Dalam senario yang diterangkan, anda mempunyai serpihan, MyListFragment, mengandungi ListView dan CursorAdapter tersuai. Anda bertujuan untuk memberitahu MyListFragment apabila butang ditekan dalam baris tertentu senarai. Untuk mencapai komunikasi ini, anda boleh menggunakan pendekatan berasaskan antara muka.
Dalam MyListAdapter, tentukan antara muka, AdapterInterface, dengan kaedah panggil balik, butangDitekan (), untuk digunakan semasa klik butang:
public class MyListAdapter extends CursorAdapter { public interface AdapterInterface { public void buttonPressed(); } ... }
Seterusnya, ubah suai MyListAdapter untuk memasukkan pembolehubah contoh jenis AdapterInterface dan pembina yang menerima contoh antara muka ini sebagai hujah:
private AdapterInterface buttonListener; public MyListAdapter (Context context, Cursor c, int flags, AdapterInterface buttonListener) { super(context,c,flags); this.buttonListener = buttonListener; }
Dalam MyListFragment, laksanakan AdapterInterface dan gantikan buttonPressed(), yang akan digunakan daripada AdapterView's onClickListener dalam penyesuai:
public MyListFragment extends Fragment implements AdapterInterface { @Override public void buttonPressed() { // ... } }
Akhir sekali, nyatakan MyListAdapter dalam MyListFragment > dan luluskan contoh MyListFragment itu sendiri sebagai hujah kepada pembina penyesuai:
MyListAdapter adapter = new MyListAdapter (getActivity(), myCursor, myFlags, this);Dengan melakukan ini,
MyListAdapter boleh menggunakan butang Pressed( ) kaedah MyListFragment apabila butang dalam baris senarai ditekan. Ini membolehkan komunikasi lancar antara penyesuai dan serpihan, membolehkan anda mengambil tindakan yang diperlukan apabila butang diklik.
Atas ialah kandungan terperinci Bagaimana untuk Berkomunikasi Antara Serpihan dan Penyesuainya Menggunakan Antara Muka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!