2015-09-16 1 views
0

je Activité principale:Ne peut pas faire la transaction en classe

public class GeneralActivity extends ActionBarActivity { 
... 
} 

J'ai une autre classe dans laquelle je crée un tiroir, je vous apporte les paramètres requis. Mais quand je veux passer à un fragment différent quand vous cliquez sur l'élément de menu, IDE écrit qu'il n'y a pas de méthode getSupportFragmentManager().

public class DrawerClass { 

    public static void drawer(final Activity activity, Toolbar toolbar) { 
    ... 
    result.setOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() { 
      @Override 
      public boolean onItemClick(View view, int i, IDrawerItem iDrawerItem) { 
       Log.d("POSITION", "position = " + i); 
       switch (i) { 
       .... 
        case 5: 
         Toast.makeText(activity, R.string.drawer_item_journal, Toast.LENGTH_SHORT).show(); 
         JournalFragment journalFragment = new JournalFragment(); 
         FragmentTransaction transaction = getSupportFragmentManager() 
           .beginTransaction(); 
         transaction.replace(R.id.profile_fragment_layout, journalFragment); 
         transaction.commit(); 
         break; 
       } 
       return false; 
      } 
     }); 

J'ai une erreur sur la ligne FragmentTransaction transaction = getSupportFragmentManager() Et je ne sais pas comment le résoudre.
J'utilise ce tiroir dans plusieurs classes, donc je créé une classe distincte afin d'éviter les doubles emplois code

Répondre

0

vous ne pouvez pas utiliser getSupportFragmentManager en dehors de l'activité ou Fragment .. alors ne

activity.getSupportFragmentManager(); 

plus un conseils pour vous le changer de Static à Singleton ..

+0

AndroidStudio dire que l'activité ont seulement getFragmentManager() – metalink

+0

, alors vous devez utiliser l'activité du paquet de support v4 et non l'activité de haute API vérifier vos importations –