从RecycleView Adapter Onclick启动片段

时间:2015-12-30 09:56:57

标签: android android-fragments onclick android-recyclerview recycler-adapter

您好我有一个RecycleView Adapter和一个按钮。我希望该按钮启动片段。我可以开始一个活动而不是片段。我为Onclick

尝试了这种Button方法
@Override
        public void onClick(View v) {
            Bundle bundle = new Bundle();
            bundle.putParcelable("event", events.get(getLayoutPosition()));
            Fragment fragment = new EditEventDetailFragment();
            fragment.setArguments(bundle);
            fragment.getFragmentManager().beginTransaction().replace(R.id.contentMainDrawer,fragment).commit();
        }

但是有错误调用null对象(contentMainDrawer)是我的主要活动content_layout。

任何帮助都非常感谢。 Fragment主机回收视图是来自Mainactivity的调用

2 个答案:

答案 0 :(得分:0)

使用以下代码替换片段

 Fragment fragment = new EditEventDetailFragment();
 FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
 FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
 fragmentTransaction.replace(R.id.contentMainDrawer, fragment, "tag").commit();

如果您在适配器内使用此代码,请将getActivity()替换为((Activity) context).

答案 1 :(得分:0)

您好我找到了2个答案,可以帮助任何需要的人。答案是使用托管调用片段的Activity。非常感谢@Mohit Suthar

Bundle bundle = new Bundle();
            bundle.putParcelable("event", events.get(getLayoutPosition()));
            Fragment fragment = new EditEventDetailFragment();
            fragment.setArguments(bundle);

            FragmentManager fragmentManager = ((MainActivity) context).getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.contentMainDrawer, fragment, "tag").commit();