Rumah >Java >javaTutorial >Bagaimanakah anda boleh melaksanakan komunikasi antara Fragmen dan Penyesuai dalam Android?

Bagaimanakah anda boleh melaksanakan komunikasi antara Fragmen dan Penyesuai dalam Android?

Patricia Arquette
Patricia Arquetteasal
2024-11-15 07:20:02828semak imbas

How can you implement communication between a Fragment and an Adapter in Android?

Pelaksanaan Antara Muka antara Fragmen dan Penyesuai

Dalam bidang pembangunan Android, antara muka antara serpihan dan penyesuai adalah tugas biasa. Untuk memudahkan ini, CursorAdapter tersuai boleh digunakan dengan antara muka penyesuai yang dibenamkan di dalamnya. Antara muka ini berfungsi sebagai saluran komunikasi antara penyesuai dan serpihan.

Pertimbangkan senario di mana serpihan (MyListFragment) mengandungi ListView dan CursorAdapter tersuai. Setiap baris dalam senarai mengandungi butang, dan apabila mengkliknya, tindakan perlu dilakukan dalam serpihan. Untuk mencapai matlamat ini, antara muka, AdapterInterface, ditakrifkan dalam penyesuai.

public class MyListAdapter extends CursorAdapter {

    public interface AdapterInterface {
        public void buttonPressed();
    }

    private AdapterInterface buttonListener;

    // ...
}

Dalam kaedah bindView penyesuai, OnClickListener ditetapkan untuk butang dalam setiap baris.

@Override
public void bindView(final View view, final Context context, final Cursor cursor) {
    // ...
    holder.button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // some action
            // need to notify MyListFragment
            if (buttonListener != null) {
                buttonListener.buttonPressed();
            }
        }
    });
}

AdapterInterface harus dilaksanakan dalam serpihan (MyListFragment) untuk mengendalikan klik butang acara.

public class MyListFragment extends Fragment implements AdapterInterface {

    @Override
    public void buttonPressed() {
        // some action
    }
}

Untuk mewujudkan komunikasi antara penyesuai dan serpihan, pembina baharu diperkenalkan dalam penyesuai, bersama-sama dengan pembolehubah contoh untuk memegang rujukan antara muka.

AdapterInterface buttonListener;

public MyListAdapter (Context context, Cursor c, int flags, AdapterInterface buttonListener)
{
  super(context,c,flags);
  this.buttonListener = buttonListener;
}

Apabila mencipta penyesuai, serpihan dihantar sebagai hujah kepada pembina untuk menyediakan pelaksanaan antara muka.

MyListAdapter adapter = new MyListAdapter (getActivity(), myCursor, myFlags, this);

Pendekatan ini memastikan bahawa apabila butang dalam penyesuai diklik, butangKaedah yang ditekan dalam serpihan digunakan, memudahkan komunikasi yang diingini antara penyesuai dan serpihan.

Atas ialah kandungan terperinci Bagaimanakah anda boleh melaksanakan komunikasi antara Fragmen dan Penyesuai dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn