Mengantaramuka Serpihan dan Penyesuai melalui Klik Butang Didorong Peristiwa
Untuk menyampaikan peristiwa antara Fragmen dan Penyesuai yang berkaitan, seseorang boleh melaksanakan antara muka dalam kelas Penyesuai. Dalam senario ini, Fragmen bernama MyListFragment mengandungi ListView yang menggunakan CursorAdapter tersuai. Apabila butang diklik dalam baris senarai, pemberitahuan diperlukan untuk dihantar ke Fragmen.
Penyelesaian melibatkan penciptaan antara muka dalam kelas Penyesuai:
public class MyListAdapter extends CursorAdapter { public interface AdapterInterface { void buttonPressed(); } ... }
Dalam kelas Fragment ( MyListFragment), laksanakan AdapterInterface:
public class MyListFragment extends Fragment implements AdapterInterface { @Override public void buttonPressed() { // Some action } }
Untuk mengikat Penyesuai dan Fragmen, ubah suai kelas Penyesuai:
public class MyListAdapter extends CursorAdapter { private AdapterInterface buttonListener; public MyListAdapter(Context context, Cursor c, int flags, AdapterInterface buttonListener) { super(context, c, flags); this.buttonListener = buttonListener; } ... }
Dalam kaedah bindView Adapter, tentukan tingkah laku klik butang:
@Override public void bindView(View view, Context context, Cursor cursor) { ... holder.button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { buttonListener.buttonPressed(); } }); }
Apabila mencipta Penyesuai, berikan Fragmen sebagai hujah:
MyListAdapter adapter = new MyListAdapter(getActivity(), myCursor, myFlags, this);
Mekanisme ini memastikan bahawa apabila butang diklik, Fragmen menerima pemberitahuan melalui antara muka yang dilaksanakan.
Atas ialah kandungan terperinci Bagaimana untuk Berkomunikasi Antara Serpihan dan Penyesuainya menggunakan Klik Butang Didorong Peristiwa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!