2015-04-04 69 views
1

我嘗試了android碎片,並且我無法理解這一點;請幫助添加和替換片段,在android中不能正常工作

public class MainActivity extends FragmentActivity { 
    private static final String TAG = "MyActivity"; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     if (findViewById(R.id.fragment_container) !=null) { 
      if(savedInstanceState!=null){ 
       return ; 
      } 
      ArticleFragment first_fragment = new ArticleFragment(); 
      HeadlineFragment second_fragment = new HeadlineFragment(); 
      first_fragment.setArguments(getIntent().getExtras()); 
      second_fragment.setArguments(getIntent().getExtras()); 
      FragmentTransaction manager=getSupportFragmentManager().beginTransaction(); 
      manager.add(R.id.fragment_container, first_fragment,"first"); 
      manager.add(R.id.yo, second_fragment,"second"); 
      manager.commit(); 
     } 
    } 

現在我想刪除second_fragment在一個按鈕按下並替換爲另一個。所以我試過這個

if(getSupportFragmentManager().findFragmentByTag("second")!=null) { 
        Log.d(TAG,"found"); 
        abc newFragment = new abc(); 
        Bundle args = new Bundle(); 
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
        transaction.remove(getSupportFragmentManager().findFragmentByTag("second")); 
        transaction.add(R.id.fragment_container,newFragment,"third"); 
        transaction.addToBackStack(null); 
        transaction.commit(); 
       } 

但是當我再次按下該按鈕時,條件通過。 這裏有什麼問題?

+0

你有問題嗎?在第一種方法還是第二種? – 2015-04-04 12:55:41

回答

0

請勿刪除和添加。簡單地用新的替換第二個片段。你會完成的。

+0

你是指這個? (),getId(),newFragment,「third」); – DarkCoderRises 2015-04-04 12:19:48

+0

transaction.replace(R.id.yo,newFragment);檢查片段上的null not條件。 – 2015-04-04 12:24:33

+0

我仍然有同樣的問題。 – DarkCoderRises 2015-04-04 12:33:03