XorOrNor
XorOrNor

Reputation: 8978

Cannot cast from fragment

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
    }


}

Upvotes: 8

Views: 7692

Answers (2)

ianhanniballake
ianhanniballake

Reputation: 199805

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.

Upvotes: 5

JafarKhQ
JafarKhQ

Reputation: 8734

use getSupportFragmentManager() instead of getFragmentManager()

Upvotes: 20

Related Questions