首页  >  文章  >  Java  >  如何使用接口在片段与其适配器之间进行通信?

如何使用接口在片段与其适配器之间进行通信?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-19 12:58:03335浏览

How to Communicate Between a Fragment and its Adapter Using an Interface?

实现片段和适配器之间通信的接口

在所描述的场景中,您有一个片段,MyListFragment, 包含一个 ListView 和一个自定义CursorAdapter. 您的目标是在列表的特定行中按下按钮时通知 MyListFragment。为了实现这种通信,您可以采用基于接口的方法。

MyListAdapter 中,定义一个接口 AdapterInterface,以及一个回调方法 buttonPressed (), 点击按钮时调用:

public class MyListAdapter extends CursorAdapter {

    public interface AdapterInterface {
        public void buttonPressed();
    }

    ...
}

下一步,修改MyListAdapter 包含 AdapterInterface 类型的实例变量以及接受此接口的实例作为参数的构造函数:

private AdapterInterface buttonListener;

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

In MyListFragment,实现 AdapterInterface 并覆盖buttonPressed(), 将从适配器中 AdapterViewonClickListener 调用:

public MyListFragment extends Fragment implements AdapterInterface {

    @Override
    public void buttonPressed() {
        // ...
    }
}

最后,实例化 MyListFragment 内的 >MyListAdapter并将 MyListFragment 本身的实例作为参数传递给适配器的构造函数:

MyListAdapter adapter = new MyListAdapter (getActivity(), myCursor, myFlags, this);
通过这样做,

MyListAdapter 可以调用 buttonPressed()每当列表行中的按钮按下时 MyListFragment 方法按下。这允许适配器和片段之间的无缝通信,使您能够在单击按钮时采取必要的操作。

以上是如何使用接口在片段与其适配器之间进行通信?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn