android – 从扩展RecyclerView.ViewHolder的类开始DialogFragment

android – 从扩展RecyclerView.ViewHolder的类开始DialogFragment,第1张

概述我在recyelerview.viewholder类的onClick()方法中尝试了如下. 示例中使用的SampleDialogFragment扩展了DialogFragment. @Overridepublic void onClick(View v){SampleDialogFragment df= new SampleDialogFragment();df.show(v.getCon 我在recyelervIEw.vIEwholder类的onClick()方法中尝试了如下.

示例中使用的SampleDialogFragment扩展了DialogFragment.

@OverrIDepublic voID onClick(VIEw v){SampleDialogFragment df= new SampleDialogFragment();df.show(v.getContext().getSupportFragmentManager(),"Dialog");}

我在v.getContext().getSupportFragmentManager()面临问题.我无法调用getSupportFragmentManager().

我也试过如下.

@OverrIDepublic voID onClick(VIEw v){SampleDialogFragment df= new SampleDialogFragment();SampleActivity activity = new SampleActivity();df.show(activity.getSupportFragmentManager(),"Dialog");}

SampleActivity是回收器视图附加的活动.它没有显示错误.当我运行应用程序并崩溃.

日志显示活动已经破坏.

有解决方案吗

解决方法 正确的方法是使用接口.

public interface OnItemClickListener {    voID onItemClicked(VIEw v);}

并在触发onClick方法时调用接口方法.

public class Yourlistadapter extends RecyclerVIEw.Adapter<...>//your codeprivate OnItemClickListener Listener;public Yourlistadapter(OnItemClickListener Listener /*your additional parameters*/) {    this.Listener = Listener;    //...}@OverrIDepublic voID onClick(VIEw v){        Listener.onItemClicked(VIEw v);}}

您必须从SampleActivity传递OnItemClickListener接口实例

并让它在您的SampleActivity中实现它

public class SampleActivity extends FragmentActivity implements OnItemClickListener {    @OverrIDe    public voID onItemClicked(VIEw v) {        SampleDialogFragment df= new SampleDialogFragment();        df.show(getSupportFragmentManager(),"Dialog");    }}
总结

以上是内存溢出为你收集整理的android – 从扩展RecyclerView.ViewHolder的类开始DialogFragment全部内容,希望文章能够帮你解决android – 从扩展RecyclerView.ViewHolder的类开始DialogFragment所遇到的程序开发问题。

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

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

原文地址: http://www.outofmemory.cn/web/1122428.html

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

发表评论

登录后才能评论

评论列表(0条)

保存