2013-05-22 51 views
62

Tôi đang tạo ứng dụng bằng Phân đoạn cho máy tính bảng. Tôi đã tạo một số nút ở phía bên trái và các đoạn xuất hiện khi nhấp vào nút .không thể chuyển đổi từ android.app.FragmentManager thành android.support.v4.app.FragmentManager

Nhưng tôi đang trải qua lỗi trong tập tin MainActivity.java tôi "sai lầm loại không phù hợp: không thể chuyển đổi android.app.FragmentManager-android.support.v4.app.FragmentManager" Và đó là lý do chính mà tôi không thể thực hiện nó.Tôi đã nhập android.support.v4.app.FragmentManager.

Tôi có thể giải quyết vấn đề của mình bằng cách nào?

Mã của tôi cho 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(); 
      } 
     }; 
     } 

Trả lời

175

Bạn cần phải sử dụng getSupportFragmentManager() trong mã của bạn, không getFragmentManager() - xem here để biết thêm chi tiết.

Bạn cũng cần mở rộng lớp học của mình từ android.support.v4.app.FragmentActivity, không chỉ từ tiêu chuẩn android.Activity để có phương pháp này.

+0

có bạn có thể sử dụng những gì David đã đề xuất. Nó đã hoạt động trong trường hợp của tôi. –

+0

Cảm ơn David vì sự giúp đỡ của các bạn. Nó đã hoạt động và bây giờ tôi đang làm việc với nó. – sakshi

+4

Đáng chú ý là bạn có thể mở rộng 'ActionBarActivity' từ' Hoạt động' của bạn ngay bây giờ. – indivisible

Các vấn đề liên quan