首页  >  文章  >  Java  >  如何在Fragment与其CursorAdapter之间建立通信?

如何在Fragment与其CursorAdapter之间建立通信?

Patricia Arquette
Patricia Arquette原创
2024-11-12 22:10:02887浏览

How to Establish Communication Between a Fragment and its CursorAdapter?

在 Fragment 和 Adapter 之间创建接口

当处理包含 ListView 和自定义 CursorAdapter 的 Fragment 时,在它们之间建立通信变得至关重要。为了实现这一点,接口可以提供一个干净高效的解决方案。

接口定义

在适配器类中,定义一个接口,定义当按钮被按下。例如:

public interface AdapterInterface {
    public void buttonPressed();
}

适配器实现

向适配器添加一个构造函数,用于初始化接口的实例变量:

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

在bindView()方法中,当单击按钮时,调用按钮上的buttonPressed()方法接口:

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

片段实现

在片段类中实现AdapterInterface并重写buttonPressed()方法:

public class MyListFragment extends Fragment implements AdapterInterface {

    @Override
    public void buttonPressed() {
        // Custom action to be performed
    }
}

初始化

创建时适配器,将片段作为参数传递给构造函数:

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

注释

  • 确保重新创建片段时也重新创​​建适配器以避免引用不存在的对象。
  • 这种方法提供了一种干净且有组织的方式来处理适配器和片段。

以上是如何在Fragment与其CursorAdapter之间建立通信?的详细内容。更多信息请关注PHP中文网其他相关文章!

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