android activity 和 Fragment切换的一些细节

文章标签: android
2016-9-5 17:29:09     120 人阅读    

   最近在进行android开发,经常需要把activity  变成 Fragment 或者Fragment变成activity  ,简单整理一下

 

1、继承变化activity 继承 FragmentActivity ,Fragment  继承Fragment 

     因为继承不通,需要实现的方法不通

   其中activity和 Fragment  对应的方法:

    activity 的  onCreate方法

  

 FragmentActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.tab_activity);
  }

 对应的 Fragment  的create方法

 

@Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
   Bundle savedInstanceState) {
  View view = inflater.inflate(R.layout.activity_browser, container,false);
  return view;
 }


  分析: 简单的说,activity本身可以看做一个view,但是 Fragment  需要购置一个view,这个view就和activy中使用this一样的效果

 

在Activity和Fragment中onCreateOptionsMenu的实现是有细微差别的

  

在activity中:

 

@Override
public boolean onCreateOptionsMenu(Menu menu) {   
    getMenuInflater().inflate(R.menu.main, menu);    
     return super.onCreateOptionsMenu(menu);
}

 

 

在Fragment中:
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {       
     inflater.inflate(R.menu.pictrue_list, menu);

      super.onCreateOptionsMenu(menu,inflater);
} 

两者不同的地方在于

(1)一个有返回值(boolean类型),一个没有返回值。

(2)Fragment中onCreateOptionsMenu的参数多了一个MenuInflater

 

其他一些备注:

、fragmentactivity 继承自activity,用来解决android3.0 之前没有fragment的api,所以在使用的时候需要导入support包,同时继承fragmentActivity,这样在activity中就能嵌入fragment来实现你想要的布局效果。 
2、当然3.0之后你就可以直接继承自Activity,并且在其中嵌入使用fragment了。 
3、获得Manager的方式也不同 
3.0以下:getSupportFragmentManager() 
3.0以上:getFragmentManager() 


 

    


原文地址:http://www.itmmd.com/201609/801.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

android TabPageIndicator 样式显示错误,没有背景   上一篇
下一篇  android listview不展示,提示The vertically scrolling ScrollView should not contain another vertically scr

精彩回复
发表评论
姓名: