Android类参考---Fragment(二)

  次阅读 作者:智能小宝 来源:互联网 2015-09-29 11:03 我要评论(0)

上一篇:http://www.2cto.com/kf/201205/134000.html

回退堆栈

在Fragment中被编辑的事务能够放在它自己的Activity中回退堆栈内。当用户在该Activity中按下返回按钮时,在回退堆栈中的任何事务在Activity自己被结束之前会被弹出堆栈。

例如,实例化一个带有整数参数的简单的Fragment对象,并且把这个整数显示在它的UI的一个TextView中:

publicstaticclassCountingFragmentextendsFragment{

int mNum;

/**

* Create a new instance of CountingFragment, providing "num"

* as an argument.

*/

staticCountingFragment newInstance(int num){

CountingFragment f =newCountingFragment();

// Supply num input as an argument.

Bundle args =newBundle();

args.putInt("num", num);

f.setArguments(args);

return f;

}

/**

* When creating, retrieve this instance's number from its arguments.

*/

@Override

publicvoid onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

mNum = getArguments()!=null? getArguments().getInt("num"):1;

}

/**

* The Fragment's UI is just a simple text view showing its

* instance number.

*/

@Override

publicView onCreateView(LayoutInflater inflater,ViewGroup container,

Bundle savedInstanceState){

View v = inflater.inflate(R.layout.hello_world, container,false);

View tv = v.findViewById(R.id.text);

((TextView)tv).setText("Fragment #"+ mNum);

tv.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.gallery_thumb));

return v;

}

}

用下面的方法创建一个新的Fragment实例,用它来替换当前被显示的Fragment实例,并把这种改变发布到回退堆栈上:

void addFragmentToStack(){

mStackLevel++;

// Instantiate a new fragment.

Fragment newFragment =CountingFragment.newInstance(mStackLevel);

// Add the fragment to the activity, pushing this transaction

// on to the back stack.

FragmentTransaction ft = getFragmentManager().beginTransaction();

ft.replace(R.id.simple_fragment, newFragment);

ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);

ft.addToBackStack(null);

ft.commit();

}

每次调用上面这个方法之后,就会在堆栈上增加一个新的实体,并且按下回退键时,会把它从堆栈中弹出,并给用户返回之前的Activity状态。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...