java– 如何在Fragment和adapter之间创建接口?

java– 如何在Fragment和adapter之间创建接口?,第1张

概述我有ListView片段,比如MyListFragment和自定义CursorAdapter.我在此适配器中为列表行中的按钮设置onClickListener.publicclassMyListAdapterextendsCursorAdapter{publicinterfaceAdapterInterface{publicvoidbuttonPressed();}...@

我有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    }}

我需要在按下按钮时通知片段.如何调用此界面?

请帮忙.

解决方法:

创建一个新的构造函数和一个实例变量:

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

制作适配器后,实例变量将被赋予适当的保持参考.

要从点击中调用片段:

public voID onClick(VIEw v) {   buttonListener.buttonpressed();}

制作适配器时,您还必须将片段传递给适配器.例如

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

因为这将引用你的Fragment,它现在是一个AdapterInterface.

请记住,在片段方向更改时,很可能会重新创建.如果未重新创建适配器,则可能会保留对不存在的对象的引用,从而导致错误.

总结

以上是内存溢出为你收集整理的java – 如何在Fragment和adapter之间创建接口?全部内容,希望文章能够帮你解决java – 如何在Fragment和adapter之间创建接口?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1104388.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存