2013-02-04 77 views
0

這是我的片段,我試圖改變片段中的片段。我知道我可以用新的片段創建一個新的活動,然後創建和意圖,並走這條路線。但我有一個活動,它有一些內容,我真的只想在一個地方更新。任何人都可以告訴我,如何在繼續使用我最初創建的活動時將片段更改爲另一個片段?用另一個片段替換片段而沒有新的活動

view = inflater.inflate(R.layout.inst_fragment, container, false); 
    furnTextView = (TextView) view.findViewById(R.id.furn_textview); 
    archTextView = (TextView) view.findViewById(R.id.arch_textview); 

    furnTextView.setOnTouchListener(new OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if(MotionEvent.ACTION_UP == event.getAction()){ 
       openCatalog("furn"); 
      } 
      return false; 
     } 
    }); 
    archTextView.setOnTouchListener(new OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if(MotionEvent.ACTION_UP == event.getAction()){ 
       openCatalog("arch"); 
      } 
      return false; 
     } 
    }); 

    return view; 
+0

是你的xml中聲明的片段嗎? – hardartcore

+0

否片段是動態加載的。從主要活動。 – ios85

回答

0

所以,你可以在「添加」另一個FragmentActivity而無需創建一個方法是使用replace()功能。這可能是您要添加的方式你在你的FragmentActivity第一Fragment

public class MainActivity extends FragmentActivity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.news_articles); 

    if (findViewById(R.id.fragment_container) != null) { 

     if (savedInstanceState != null) { 
      return; 
     } 

     MyFirstFragment firstFragment = new HeadlinesFragment(); 
     firstFragment.setArguments(getIntent().getExtras()); 

     // Add the fragment to the 'fragment_container' FrameLayout 
     getSupportFragmentManager().beginTransaction() 
       .add(R.id.fragment_container, firstFragment).commit(); 
    } 
} 

}

並使用FragmentTransactionreplace您可以用另一個替換MyFirstFragment

MyNewFragment newFragment = new MyNewFragment(); 
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
transaction.replace(R.id.fragment_container, newFragment); 
transaction.addToBackStack(null); 
transaction.commit(); 

這就是全部。希望能幫助到你! :)

0

試試這個代碼,它會替換你當前的片段,並且你的舊片段將被恢復。

NewFragment fragment = NewFragment.newInstance(); 
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
ft.addToBackStack("BACKSTACK"); 
ft.replace(R.id.home_list, fragment); 
ft.commit(
+0

是的,您可以通過函數getSupportFragmentManager或getActivity()。getSupportFragmentManager()來訪問FragmentManager。 NewFragment是你的第二個片段 – bongo

+0

真棒,謝謝! – ios85

相關問題