web-dev-qa-db-fra.com

ne peut pas convertir Android.app.FragmentManager en Android.support.v4.app.FragmentManager

Je crée une application à l'aide de Fragments for tablet.J'ai jusqu'ici créé des boutons sur le côté gauche et les fragments apparaissent en cliquant sur les boutons.

Mais je rencontre une erreur dans mon fichier MainActivity.Java "Erreur de correspondance de type: impossible de convertir à partir de Android.app.FragmentManager à Android.support.v4.app.FragmentManager "Et c’est la principale raison pour laquelle je ne peux pas l’implémenter. J’ai déjà importé Android.support.v4.app.FragmentManager.

Comment puis-je résoudre mon problème?

Mon code pour MainActivity.Java

      import Android.app.Activity;
import Android.os.Bundle;
import Android.support.v4.app.Fragment;
import Android.support.v4.app.FragmentManager;
import Android.support.v4.app.FragmentTransaction;
import Android.view.View;
import Android.widget.Button;

public class MainActivity extends Activity {
    Fragment fragment;
    Button btn1,btn2,btn3,btn4,btn5,btn6;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn1=(Button)findViewById(R.id.btn1);
        btn2=(Button)findViewById(R.id.btn2);
        btn3=(Button)findViewById(R.id.btn3);
        btn4=(Button)findViewById(R.id.btn4);
        btn5=(Button)findViewById(R.id.btn5);
        btn6=(Button)findViewById(R.id.btn6);

        FragmentManager fm=getFragmentManager();
        FragmentTransaction ft=fm.beginTransaction();

        StartFragment myfragment=new StartFragment();
        ft.add(R.id.myfragment,myfragment);
        ft.commit();
        btn4.setOnClickListener(btnOnClickListener);
        btn5.setOnClickListener(btnOnClickListener);
        btn6.setOnClickListener(btnOnClickListener);
    }



        Button.OnClickListener btnOnClickListener=new Button.OnClickListener(){
            @Override

            public void onClick(View v)
            {
                Fragment newfragment;
                if(v==btn1)
                {
                    newfragment=new Fragment1();
                }
                else if(v==btn2)
                {
                    newfragment=new Fragment2();
                }
                else if(v==btn3)
                {
                    newfragment=new Fragment3();
                }
                else if(v==btn4)
                {
                    newfragment=new Fragment4();
                }
                else if(v==btn5)
                {
                    newfragment=new Fragment5();
                }
                else if(v==btn6)
                {
                    newfragment=new Fragment6();
                }
                else 
                {
                    newfragment=new StartFragment();
                }
                FragmentTransaction transaction=getFragmentManager.beginTransaction();
                transaction.replace(R.id.myfragment,newfragment);
                transaction.addToBackStack(null);
                transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                transaction.commit();
            }
        };
        }
66
sakshi

Vous devez utiliser getSupportFragmentManager() dans votre code, pas getFragmentManager() - voir ici pour plus de détails.

Vous devez également prolonger votre classe de Android.support.v4.app.FragmentActivity, pas seulement de la norme Android.Activity pour obtenir cette méthode.

178
lepoetemaudit