Fragment高级
Fragment回退栈
代码展示
public class Main2Activity extends AppCompatActivity {
private FragmentManager supportFragmentManager;
private BlankFragment blankFragment;
private Button butBack;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
initViews();
}
private void initViews() {
supportFragmentManager = getSupportFragmentManager();//获取碎片管理者
FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();//创建事务
blankFragment = new BlankFragment();//创建碎片
butBack = (Button) findViewById(R.id.but_back);
fragmentTransaction.add(R.id.content_layout2, blankFragment);//添加到布局里
fragmentTransaction.addToBackStack("1");//添加到回退栈
fragmentTransaction.commit();//提交事务
butBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
supportFragmentManager.popBackStack();//弹栈
}
});
}
}
注意事项
按返回键时会将fragment弹栈。
Activity给Fragment传值
代码展示
activity的代码跟xml文件
public class MainActivity<fragment> extends AppCompatActivity {
private EditText etText;
private Button btnSend;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etText = (EditText) findViewById(R.id.et_text);
btnSend = (Button) findViewById(R.id.btn_send);
//获取管理者
final FragmentManager supportFragmentManager = getSupportFragmentManager();
//开启事务
final FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();
//添加哟个碎片
BlankFragment blankFragment = new BlankFragment();
fragmentTransaction.add(R.id.fg_fg,blankFragment);
//提交事务
fragmentTransaction.commit();
btnSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//重新开始事务 一个事务只能够提交一次
FragmentTransaction fragmentTransaction1 = supportFragmentManager.beginTransaction();
//重新new一个需要传值的Fragment对象
BlankFragment blankFragment1 = new BlankFragment();
//替换这个碎片
fragmentTransaction1.replace(R.id