66 votes

impossible de convertir Android.app.FragmentManager en Android.support.v4.app.FragmentManager

Je suis en train de créer une application utilisant Fragments pour tablette. J'ai jusqu'à présent créé quelques 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 "Type mismatch error:cannot convert from android.app.FragmentManager à android.support.v4.app.FragmentManager " Et c'est la principale raison pour laquelle je ne peux pas le mettre en œuvre. 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();
            }
        };
        }

178voto

The App Chaps Points 3999

Vous devez utiliser getSupportFragmentManager() dans votre code, et non getFragmentManager() - voir ici pour plus de détails : [http://developer.Android.com/reference/Android/support/v4/app/FragmentActivity.html#getSupportFragmentManager()](http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html#getSupportFragmentManager())

Vous devez également étendre votre classe à partir de android.support.v4.app.FragmentActivity et pas seulement de la norme android.Activity pour obtenir cette méthode.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X