Pengenalan:
Mencipta saluran komunikasi antara serpihan dan penyesuai kursor tersuai boleh memudahkan pertukaran data yang lancar dan pengendalian acara antara ini komponen.
Masalah:
Sebuah serpihan mengandungi ListView yang dikaitkan dengan penyesuai kursor. Penyesuai mempunyai butang dalam setiap baris senarai dengan pendengar onClick. Matlamatnya adalah untuk memberitahu serpihan apabila butang ini ditekan.
Penyelesaian:
Tentukan Antara Muka dalam Penyesuai:
Laksanakan Antara Muka dalam Fragmen:
Lepaskan Fragmen sebagai Argumen kepada Penyesuai:
Panggil Antara Muka daripada OnClickListener Penyesuai:
Contoh Kod:
public class MyListAdapter extends CursorAdapter { public interface AdapterInterface { public void buttonPressed(); } private AdapterInterface buttonListener; public MyListAdapter (Context context, Cursor c, int flags, AdapterInterface buttonListener) { super(context,c,flags); this.buttonListener = buttonListener; } @Override public void bindView(final View view, final Context context, final Cursor cursor) { ViewHolder holder = (ViewHolder) view.getTag(); ... holder.button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { buttonListener.buttonPressed(); } }); } } public MyListFragment extends Fragment implements AdapterInterface { @Override public void buttonPressed() { // some action } }
Penggunaan:
Buat contoh penyesuai, melepasi serpihan sebagai hujah:
MyListAdapter adapter = new MyListAdapter (getActivity(), myCursor, myFlags, this);
Awas untuk Perubahan Orientasi:
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Komunikasi Antara Serpihan dan Penyesuai Kursor Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!