这是我的问题。当我点击RecyclerView
中的单个项目时,我想进行片段交易。在寻呼机适配器中,我创建了rootListFragment
,它是其他Fragments
的容器。创建rootListFragment
后,它会包含我的RecyclerView
片段,我将其命名为ListFragment
。当我单击单个项目时,我想将rootListFragment
替换为WebViewFragment
,其中仅包含单个文本" Hello空白片段"。完成此交易后,我的ListFragment
仍处于正面视图中。你知道如何解决这个问题吗?这是我的代码。
RootListFragment:
public class RootListFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_root_list, container, false);
FragmentManager fragmentManager = getChildFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.root_list_fragment, new ListFragment()).commit();
return view;
}
}
部分RecyclerView
,点击
public static class DataViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
...
public DataViewHolder(View view) {
super(view);
view.setOnClickListener(this);
}
@Override
public void onClick(View v) {
AppCompatActivity activity = (AppCompatActivity) v.getContext();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.root_list_fragment, new WebViewFragment())
.commit();
}
}
}
答案 0 :(得分:0)
我认为问题在于您的onclick方法在您的适配器构造函数中获取您的上下文/活动值,如此
public ViewAdapter(Context context, List<Information> data)
{
inflater=LayoutInflater.from(context);
this.data=data;
this.context=context;
}
然后在你的onclick方法下面放置代码
context.getSupportFragmentManager().beginTransaction().replace(R.id.root_list_fragment, new WebViewFragment())
.commit();