Home » Android » java – Cannot cast from fragment

java – Cannot cast from fragment

Posted by: admin June 15, 2020 Leave a comment

Questions:

I’ve a two fragments defined in the layout of my MainActivity and set by setContentView. I’d like to call some methods from these fragments, but I don’t know how to acces them. Eclipse says: “Cannot cast form Fragment to ListFileFrgament”.

public class MainActivity extends FragmentActivity {

    @Override
     protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    FileListFragment listFragment = (FileListFragment) getFragmentManager().findFragmentById(R.id.list_fragment);  
     // cannot casr here
    PlayerFragment playerFragment = (PlayerFragment) getFragmentManager().findFragmentById(R.id.player_fragment); 
     // cannot cast here
    }


}
How to&Answers:

use getSupportFragmentManager() instead of getFragmentManager()

Answer:

Make sure your imports match – it may be that FileListFragment / PlayerListFragment extend android.support.v4.app.Fragment while getFragmentManager().findFragmentById returns android.app.Fragment.

Use getSupportFragmentManager() to return android.support.v4.app.Fragment instances.