2015-03-25 100 views
-2

我用這個代碼添加片段替換的Android 4.0.4替換片段中的Android

FragmentManager manager; 
manager=getFragmentManager(); 
FragmentTransaction transaction=manager.beginTransaction(); 
Fragment1 f1=new Fragment1(); 
Fragment2 f2=new Fragment2(); 
public void replace_one(View v) 
    { 
     Fragment1 f1=(Fragment1)manager.findFragmentByTag("f1"); 
     transaction.remove(f1);    
     transaction.replace(R.id.place,f2,"f2"); 
     transaction.commit(); 
} 

此代碼的工作與另一個片段,但對於的是Android 4.4.2不工作併爲Android 4.1.2,它正在

,如果我使用此代碼:

FragmentManager manager; 
    manager=getFragmentManager(); 
    FragmentTransaction transaction=manager.beginTransaction(); 
    Fragment1 f1=new Fragment1(); 
    Fragment2 f2=new Fragment2(); 
    public void replace_one(View v) 
     { 
      Fragment1 f1=(Fragment1)manager.findFragmentByTag("f1"); 
      transaction.remove(f1);    
      transaction.add(R.id.place,f2,"f2"); 
      transaction.commit(); 
    } 

這段代碼作品是Android 4.4.2,但針對Android 4.0.4 4.1.2工作

什麼是錯不起作用和Android的??

+0

它的存在,在logcat中。 – Hulk 2015-03-25 10:54:16

+0

什麼意思?你期望的行爲是什麼?你收到的行爲是什麼? – Christopher 2015-03-25 14:55:25

+0

我的意思是:fragment1 hide和fragment2顯示 – 2015-03-25 16:32:58

回答

0

這裏是你將如何添加或更換片段:

//TO add your fragment 
    SomeFragment fragment = SomeFragment.getInstance()//If you have made your fragment singleton. 
    getFragmentManager().beginTransaction().add(YOUR_CONTAINER_ID, YOUR FRAGMENT, YOUR_FRAGMENT_UNIQUE_TAG).addToBackStack(null).commit(); 

    //TO replace your fragment 
    SomeFragment fragment = SomeFragment.getInstance()//If you have made your fragment singleton. 
    getFragmentManager().beginTransaction().replace(YOUR_CONTAINER_ID, YOUR FRAGMENT, YOUR_FRAGMENT_UNIQUE_TAG).addToBackStack(null).commit(); 

和進口:

import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
+0

我創建了12個片段,但導入了android.app.Fragment – 2015-03-25 11:58:03

+0

什麼是解決方案? – 2015-03-25 11:58:31