2013-05-22 7 views
62

मैं टैबलेट के लिए Fragments का उपयोग करके एक ऐप बना रहा हूं। मैंने अभी तक बाईं ओर कुछ बटन बनाए हैं और टुकड़े बटन पर क्लिक करने के लिए दिखाई देते हैं ।android.app.FragmentManager से android.support.v4.app.FragmentManager

लेकिन मैं अपने MainActivity.java फ़ाइल में त्रुटि का अनुभव कर रहा हूँ "प्रकार बेमेल त्रुटि: android.app.FragmentManager से android.support.v4.app.FragmentManager को परिवर्तित नहीं कर सकते" और है कि मुख्य कारण यह है कि मैं लागू नहीं कर सकते था.मैं पहले से ही android.support.v4.app.FragmentManager आयात किया है है।

मैं अपनी समस्या का समाधान कैसे कर सकता हूं?

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(); 
      } 
     }; 
     } 

उत्तर

175

के लिए मेरे कोड अपने कोड के getSupportFragmentManager() उपयोग करने की आवश्यकता है, न कि getFragmentManager() - अधिक जानकारी के लिए here देखते हैं।

आपको इस विधि को प्राप्त करने के लिए मानक android.Activity से न केवल android.support.v4.app.FragmentActivity से अपनी कक्षा का विस्तार करने की आवश्यकता है।

+0

हाँ आप डेविड ने जो सुझाव दिया है उसका उपयोग कर सकते हैं। यह मेरे मामले में काम करता था। –

+0

धन्यवाद आपकी तरह की मदद के लिए डेविड। यह काम किया और अब मैं इस पर काम कर रहा हूँ। – sakshi

+4

यह ध्यान देने योग्य है कि आप अब भी 'एक्शनबैरएक्टिविटी' को अपने 'गतिविधि' से बढ़ा सकते हैं। – indivisible

संबंधित मुद्दे