Heim > Java > javaLernprogramm > Wie kommuniziere ich zwischen einem Fragment und seinem Adapter mithilfe eines ereignisgesteuerten Schaltflächenklicks?

Wie kommuniziere ich zwischen einem Fragment und seinem Adapter mithilfe eines ereignisgesteuerten Schaltflächenklicks?

DDD
Freigeben: 2024-11-19 10:09:02
Original
606 Leute haben es durchsucht

How to Communicate Between a Fragment and its Adapter using an Event-Driven Button Click?

Schnittstelle zwischen Fragment und Adapter durch ereignisgesteuerte Schaltflächenklicks

Um Ereignisse zwischen einem Fragment und dem zugehörigen Adapter zu kommunizieren, kann man eine Schnittstelle implementieren innerhalb der Adapter-Klasse. In diesem Szenario enthält ein Fragment namens MyListFragment eine ListView, die einen angepassten CursorAdapter verwendet. Beim Klicken auf die Schaltfläche in der Listenzeile muss eine Benachrichtigung an das Fragment gesendet werden.

Die Lösung besteht darin, eine Schnittstelle innerhalb der Adapter-Klasse zu erstellen:

public class MyListAdapter extends CursorAdapter {

    public interface AdapterInterface {
        void buttonPressed();
    }

    ...
}
Nach dem Login kopieren

Innerhalb der Fragment-Klasse ( MyListFragment), implementieren Sie das AdapterInterface:

public class MyListFragment extends Fragment implements AdapterInterface {

    @Override
    public void buttonPressed() {
        // Some action
    }
}
Nach dem Login kopieren

Um den Adapter und das Fragment zu binden, ändern Sie den Adapter Klasse:

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;
    }

    ...
}
Nach dem Login kopieren

Definieren Sie innerhalb der bindView-Methode des Adapters das Schaltflächenklickverhalten:

@Override
public void bindView(View view, Context context, Cursor cursor) {
    ...

    holder.button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            buttonListener.buttonPressed();
        }
    });
}
Nach dem Login kopieren

Übergeben Sie beim Erstellen des Adapters das Fragment als Argument:

MyListAdapter adapter = new MyListAdapter(getActivity(), myCursor, myFlags, this);
Nach dem Login kopieren

Dieser Mechanismus stellt sicher, dass das Fragment beim Klicken auf die Schaltfläche die Benachrichtigung über die implementierte Schnittstelle erhält.

Das obige ist der detaillierte Inhalt vonWie kommuniziere ich zwischen einem Fragment und seinem Adapter mithilfe eines ereignisgesteuerten Schaltflächenklicks?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage