示例中使用的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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)