FragmentManager from Context

后端 未结 5 1177
旧时难觅i
旧时难觅i 2020-12-15 03:09

I created a new View class. Within that class I need to get access to the FragmentManager, but I cannot figure out how.

Can I access the

5条回答
  •  执笔经年
    2020-12-15 03:54

    Only if the given Context extends Activity (Post-Honeycomb) or FragmentActivity (pre-honeycomb).

    In which case you'd have to make 100% sure it's an activity using reflection or try-catch.

    try{
      final Activity activity = (Activity) context;
    
      // Return the fragment manager
      return activity.getFragmentManager();
    
      // If using the Support lib.
      // return activity.getSupportFragmentManager(); 
    
    } catch (ClassCastException e) {
      Log.d(TAG, "Can't get the fragment manager with this");
    }
    

    Thought I recommend refactoring so a View is really just meant for showing stuff and shouldn't actually modify the state of your app, but that's my opinion.

提交回复
热议问题