问题描述
我在项目中有一个 BackStack,为了从片段到片段的转换,我使用以下内容
public void showFragment(@NonNull Fragment fragment) {
showFragment(fragment,true);
}
public void showFragment(@NonNull Fragment fragment,boolean addToBackStack) {
if (curFragment != null && addToBackStack) {
pushFragmentToBackStack(curTabId,curFragment);
}
replaceFragment(fragment);
}
private void replaceFragment(@NonNull Fragment fragment) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction tr = fm.beginTransaction();
tr.replace(R.id.content,fragment);
tr.commitAllowingStateLoss();
curFragment = fragment;
}
但我需要通过单击 recyclerView 中的项目进入片段,为此,我为每个 item
添加了一个位置。
onBindViewHolder
中的 Adapter
添加了这个
@Override
public void onBindViewHolder(MenuViewHolder holder,int position) {
ItemMenu Item = ItemMenuList.get(position);
holder.tv_menu.setText(Item.getMenuText());
holder.getAdapterPosition();
holder.cv_menu.setOnClickListener(v ->
{
switch (Item.getInitialPositon()) {
case 0: {
((MainActivity) requireActivity()).showFragment(Fragment_Tasks.newInstance());
break;
}
case 1: {
break;
}
}
});
}
问题是转换需要context()
。如何解决?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)