安卓开发_浅谈Fragment之事务添加Fragment对象
2014-09-10 11:41
423 查看
我们都知道给一个activity动态添加fragment的时候 有下面几种添加方式
看一下布局文件
addToBackStack
每次点击新建按钮,都执行上面一段代码,也就是新建一个Fragment对象并加入到事务中,并将对象加入到回退栈中显示出新的fragment效果图
点击返回按钮显示当前fragment之前的fragment效果图 直到没有fragment对象时activity销毁退出
----------------------------------------------------------------------------------------------------------------------------------------
根据需求选择上述三种事务添加fragment对象的方法。
注意:
1、每次添加fragment对象都要将事务提交才有效果(action.commit()) ,下面情况没有事务提交 则fragment对象没有成功加入事务
正确写法:
2、每次事务提交之前都要有这个事务对象,下面情况action.commit()之后 不能继续action.commit()
正确写法:
看一下布局文件
package com.xqx_backfragment; import android.app.Activity; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { private Button btn_new; private Button btn_back; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_new = (Button) findViewById(R.id.newfragment); btn_back = (Button) findViewById(R.id.backfragment); //新建一个新的fragment btn_new.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //创建管理者对象 FragmentManager manager = getFragmentManager(); //创建事务对象 FragmentTransaction action = manager.beginTransaction(); MyFragment fragment = new MyFragment(); action.add(R.id.show_fragment, fragment); action.addToBackStack(null); action.commit(); } }); //返回 btn_back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub onBackPressed(); } }); } }
addToBackStack
//创建管理者对象 FragmentManager manager = getFragmentManager(); //创建事务对象 FragmentTransaction action = manager.beginTransaction(); MyFragment fragment = new MyFragment(); action.add(R.id.show_fragment, fragment); action.addToBackStack(null); action.commit();
每次点击新建按钮,都执行上面一段代码,也就是新建一个Fragment对象并加入到事务中,并将对象加入到回退栈中显示出新的fragment效果图
点击返回按钮显示当前fragment之前的fragment效果图 直到没有fragment对象时activity销毁退出
----------------------------------------------------------------------------------------------------------------------------------------
根据需求选择上述三种事务添加fragment对象的方法。
注意:
1、每次添加fragment对象都要将事务提交才有效果(action.commit()) ,下面情况没有事务提交 则fragment对象没有成功加入事务
//创建管理者对象 FragmentManager manager = getFragmentManager(); //创建事务对象 FragmentTransaction action = manager.beginTransaction(); MyFragment fragment = new MyFragment(); action.add(R.id.show_fragment, fragment);
正确写法:
1 //创建管理者对象 2 FragmentManager manager = getFragmentManager(); 3 //创建事务对象 4 FragmentTransaction action = manager.beginTransaction(); 5 MyFragment fragment = new MyFragment(); 6 action.add(R.id.show_fragment, fragment); 7 action.commit();
2、每次事务提交之前都要有这个事务对象,下面情况action.commit()之后 不能继续action.commit()
//创建管理者对象 FragmentManager manager = getFragmentManager(); //创建事务对象 FragmentTransaction action = manager.beginTransaction(); MyFragment fragment = new MyFragment(); action.add(R.id.show_fragment, fragment);
action.commit();
MyFragment fragment1 = new MyFragment();
action.add(R.id.show_fragment, fragment1);
action.commit();
正确写法:
//创建管理者对象 FragmentManager manager = getFragmentManager(); //创建事务对象 FragmentTransaction action = manager.beginTransaction(); MyFragment fragment = new MyFragment(); action.add(R.id.show_fragment, fragment);
action.addToBackStack(null);
action.commit();
action = manager.beginTransaction();
MyFragment fragment1 = new MyFragment();
action.add(R.id.show_fragment, fragment1);
action.addToBackStack(null);
action.commit();
相关文章推荐
- [安卓开发] 带滚动条的多屏滑动-IndicatorFragmentActivity 修改优化版|添加底部图片变化
- 安卓开发_浅谈Fragment之ListFragment
- CAD二次开发之“添加对象到模型空间”
- CAD二次开发之“添加对象到模型空间”
- 安卓开发_浅谈TimePicker(时间选择器)
- 安卓开发_WebView如何在Fragment中使用
- 安卓开发_浅谈WebView(转)
- Flex开发:点对象添加与线对象的关系失败
- 安卓开发25:碎片 Fragment使用
- 安卓开发25:碎片 Fragment使用
- 安卓开发_浅谈AsyncTask
- Revit二次开发之“添加对象到选择集”
- android开发之activity运行时添加fragment
- 安卓开发中动态添加lsitView 代码实例【转】
- android开发之activity运行时添加fragment
- 浅谈iphone开发中关于第三方对象执行回调的方法
- 安卓-开发常见问题之串行化对象进入Service
- 安卓开发_浅谈ListView(ArrayAdapter数组适配器)
- 安卓开发_浅谈主配置文件(AndroidManifest.xml)
- 继承自父类的createFragment()方法 没有执行,安卓开发