2013-05-22 2 views
62

Ich erstelle eine app mit Fragmente für tablet.Ich habe bisher einige Schaltflächen auf der linken Seite erstellt und die Fragmente erscheinen beim Klicken auf die Schaltflächen .kann nicht von android.app.FragmentManager zu android.support.v4.app.FragmentManager konvertieren

Aber ich erlebe Fehler in meiner MainActivity.java Datei „Typenkonflikt Fehler: kann nicht android.app.FragmentManager-android.support.v4.app.FragmentManager konvertieren“ Und das ist der Hauptgrund dafür, dass ich it.I bereits android.support.v4.app.FragmentManager importiert nicht umsetzen können.

Wie kann ich mein Problem lösen?

Mein Code für 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(); 
      } 
     }; 
     } 

Antwort

175

Sie müssen getSupportFragmentManager() in Ihrem Code verwenden, nicht getFragmentManager()-here für weitere Details sehen.

Sie müssen auch Ihre Klasse von android.support.v4.app.FragmentActivity, nicht nur von Standard android.Activity, um diese Methode zu erhalten.

+0

Ja, Sie können verwenden, was David vorgeschlagen hat. In meinem Fall hat es funktioniert. –

+0

Danke David für deine freundliche Hilfe. Es hat funktioniert und jetzt arbeite ich weiter daran. – sakshi

+4

Beachten Sie, dass Sie jetzt auch ActionBarActivity von Ihrer Aktivität entfernen können. – indivisible

Verwandte Themen