【问题标题】:How to call getSupportFragmentManager() when trying to Navigate to fragment from Recycler Adapter尝试从 Recycler Adapter 导航到片段时如何调用 getSupportFragmentManager()
【发布时间】:2018-07-25 11:37:15
【问题描述】:

I am calling Recycler Adapter from Fragment not from acvity.

当我点击Recyclerview 中的项目时,我想导航到另一个Fragment

为此,我在Adapter 中写了onClickListner()

private View.OnClickListener onClickListener(final int position){
    return new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            try{

                activityType = context.getActivityFragmentTag(EmpConstants.WorkType.Entry);
                fragment = new Entry_Fragment();
                FragmentManager fragmentManager = getSupportFragmentManager();
                fragmentManager.beginTransaction()
                        .replace(R.id.fragment_container, fragment, activityType)
                        .commit();



            }catch (Exception e){
                Log.e("eEmp/StnFailAdapter","Excp due to"+e.toString());
            }
        }
    };
} 

但在getSupportFragmentManager();显示错误

【问题讨论】:

  • 什么样的错误?你能用这个错误更新问题吗?
  • 更新了问题请检查@OscarCaballeroPozas
  • 写 context.getSupportedFragmentManger() ;
  • @vishnu 您的活动名称是什么?你的适配器中有上下文的引用吗?

标签: android fragment android-recyclerview


【解决方案1】:

getSupportFragmentManager() 是来自AppCompatActivity 的方法:https://developer.android.com/reference/android/support/v4/app/FragmentActivity#getSupportFragmentManager()

如果您使用支持库中的 Fragment(扩展 AppCompatActivity),您需要为此替换:

FragmentManager fragmentManager = ((Activity) context).getSupportFragmentManager();

或使用 Android SDK 中的 Fragment:

FragmentManager fragmentManager = ((Activity) context).getFragmentManager();

【讨论】:

  • 我使用了支持库。但是 FragmentManager fragmentManager = ((Activity) context).getSupportFragmentManager();不工作
猜你喜欢
  • 2015-12-15
  • 2015-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多