通过getSupportFragmentManager()方法获取当前activity的Fragment管理者
fm=getSupportFragmentManager();
创建一个AFragment碎片的实例
af=new AFragment();
FragmentTransaction 对fragment进行添加、移除、替换、以及执行其他操作,每一个事务都是同时执行一套变化,在每一个事物中设置你想要的变化,最后调用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();
//创建一个AFragment碎片的实例
af=new AFragment();
/*
*FragmentTransaction 对fragment进行添加、移除、替换、以及执行其他操作
* 每一个事务都是同时执行一套变化
* 在每一个事物中设置你想要的变化,最后调用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)没有创建,就创建一个
//并通过add方法添加到事务中
// 如果碎片已经创建 就用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;
}
}
//用来隐藏已经加载过的碎片
private void hideAll(){
FragmentTransaction fh=fm.beginTransaction();
if(af!=null){
fh.hide(af);
}
if(bf!=null){
fh.hide(bf);
}
fh.commit();
}
}