通過getSupportFragmentManager()方法獲取當前activity的Fragment管理者
fm=getSupportFragmentManager();
創(chuàng)建一個AFragment碎片的實例
af=new AFragment();
FragmentTransaction 對fragment進行添加谆构、移除、替換、以及執(zhí)行其他操作恬偷,每一個事務都是同時執(zhí)行一套變化燥撞,在每一個事物中設置你想要的變化闯第,最后調用commit()提交事務
FragmentTransaction ft=fm.beginTransaction();
事例
package com.example.bb4fragment1114dongtai;
import android.os.Bundle;
import android.app.Activity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends FragmentActivity implements OnClickListener{
private Button bt_a;
private Button bt_b;
private AFragment af;
private BFragment bf;
private FragmentManager fm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_a=(Button)findViewById(R.id.bt_a);
bt_b=(Button)findViewById(R.id.bt_b);
bt_a.setOnClickListener(this);
bt_b.setOnClickListener(this);
//通過getSupportFragmentManager()方法獲取當前activity的Fragment管理者
fm=getSupportFragmentManager();
//創(chuàng)建一個AFragment碎片的實例
af=new AFragment();
/*
*FragmentTransaction 對fragment進行添加兔院、移除零聚、替換、以及執(zhí)行其他操作
* 每一個事務都是同時執(zhí)行一套變化
* 在每一個事物中設置你想要的變化煎谍,最后調用commit()提交事務
*/
FragmentTransaction ft=fm.beginTransaction();
ft.add(R.id.guanlizhe, af);
ft.commit();
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
hideAll();
switch (v.getId()) {
case R.id.bt_a:
//如果碎片(Fragment)沒有創(chuàng)建攘蔽,就創(chuàng)建一個
//并通過add方法添加到事務中
// 如果碎片已經(jīng)創(chuàng)建 就用show()方法顯示
FragmentTransaction fta=fm.beginTransaction();
if(af==null){
af=new AFragment();
fta.add(R.id.guanlizhe, af);
}else{
fta.show(af);
}
fta.commit();
break;
case R.id.bt_b:
FragmentTransaction ftb=fm.beginTransaction();
if(bf==null){
bf=new BFragment();
ftb.add(R.id.guanlizhe, bf);
}else{
ftb.show(bf);
}
ftb.commit();
break;
}
}
//用來隱藏已經(jīng)加載過的碎片
private void hideAll(){
FragmentTransaction fh=fm.beginTransaction();
if(af!=null){
fh.hide(af);
}
if(bf!=null){
fh.hide(bf);
}
fh.commit();
}
}