
我有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之间创建接口?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)