如何在片段和适配器之间创建接口?

如何在片段和适配器之间创建接口?

我有碎片ListView,说MyListFragment,以及习俗CursorAdapter..我正在设置onClickListener在此适配器中,用于列表行中的按钮。

public class MyListAdapter extends CursorAdapter {

    public interface AdapterInterface {
        public void buttonPressed();
    }

    ...

    @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) {
                // some action
                // need to notify MyListFragment
            }
        });
    }}public MyListFragment extends Fragment implements AdapterInterface {

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

我需要在按下按钮时通知片段。如何调用这个接口?

救命求你了。


凤凰求蛊
浏览 337回答 3
3回答

慕的地10843

创建一个新的构造函数和一个实例变量:AdapterInterface buttonListener;public MyListAdapter (Context context, Cursor c, int flags, AdapterInterface buttonListener){   super(context,c,flags);   this.buttonListener = buttonListener;}当Adapter被创建时,实例变量将被赋予适当的引用来保持。若要从单击中调用片段,请执行以下操作:public void onClick(View v) {    buttonListener.buttonPressed();}在制作Adapter,您还必须将片段传递给Adapter。例如MyListAdapter adapter = new MyListAdapter (getActivity(), myCursor, myFlags, this);自this将引用您的片段,它现在是一个AdapterInterface.请记住,在更改片段的方向时,很可能会重新创建它。如果没有重新创建Adapter,它可能会保留对不存在的对象的引用,从而导致错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android
Java