[{"data":1,"prerenderedAt":69},["ShallowReactive",2],{"page-Fragment-1":3,"page-count-Fragment":68},[4],{"id":5,"title":6,"body":7,"date":44,"description":13,"extension":45,"meta":46,"navigation":49,"path":61,"seo":62,"stem":63,"tags":64,"__hash__":67},"blogs\u002F_legacy\u002F2012\u002F2012-12-16-android%e7%ae%80%e5%8d%95%e7%9a%84%e5%b0%86activity%e6%94%b9%e4%b8%bafragment.md","Android简单的将Activity改为Fragment",{"type":8,"value":9,"toc":40},"minimark",[10,14,17,20,31,34],[11,12,13],"p",{},"开发android有时会遇到这样的问题，那就是需要将Activity改造成Fragment。",[11,15,16],{},"本来Fragment是新的android版本上的东西，不过既然google这么亲切的提供了向下兼容的包。那么总会有这样的需要的时候，好在Activity到Fragment的转化并不复杂，因为本来就是相似的东西。最近就遇到了这的问题，于是来总结一下经验。",[11,18,19],{},"从Activity到Fragment最大的变动在于，在Fragment里面的onCreate()函数内，是没有办法使用findViewById、setContentView这些函数的。因为Fragment本身并没有提供这些方法。于是我们只能通过onCreateView和onViewCreated来实现对显示的控制。",[21,22,27],"pre",{"className":23,"code":25,"language":26},[24],"language-text","@Override\n\npublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {\n  return inflater.inflate(R.layout.about_detail, container, false);\n}\n\n@Override\n\npublic void onViewCreated(View view, Bundle savedInstanceState) {\n  super.onViewCreated(view, savedInstanceState);\n  version = (TextView) view.findViewById(R.id.version);\n  loginfo = (TextView) view.findViewById(R.id.loginfo);\n}\n","text",[28,29,25],"code",{"__ignoreMap":30},"",[11,32,33],{},"而一些Fragment没有提供的属于Activity的函数我们可以通过getActivity()得到作为parent的Activity来调用，因为Fragment只是作为片段提供给Activity使用的，所以很多功能的实现都被留在了Activity里面。不过无论如何，只要利用Eclipse自带的查错功能可以非常快速的完成这些操作。这种改动一般不会很复杂，只要把Fragment要做的事情交给作为parent的Activity处理就可以了。比如像Intent的处理就可以这样：",[21,35,38],{"className":36,"code":37,"language":26},[24],"Intent i = new Intent();\ni.setClass(getActivity().getApplicationContext(), NewActivity.class);\nstartActivity(i);\ngetActivity().finish();\n",[28,39,37],{"__ignoreMap":30},{"title":30,"searchDepth":41,"depth":42,"links":43},2,3,[],"2012-12-16","md",{"layout":47,"status":48,"published":49,"author":50,"author_login":51,"author_email":52,"author_url":53,"wordpress_id":54,"wordpress_url":55,"date_gmt":56,"excerpt":57},"post","publish",true,{"display_name":51,"login":51,"email":52,"url":53},"chaoshikari","chaoshikari@gmail.com","\u002F",526,"\u002F\u002F?p=526","2012-12-16 03:20:01 +0000",{"type":8,"value":58},[59],[11,60,13],{},"\u002F2012-12-16-android简单的将activity改为fragment",{"title":6,"description":13},"_legacy\u002F2012\u002F2012-12-16-android%e7%ae%80%e5%8d%95%e7%9a%84%e5%b0%86activity%e6%94%b9%e4%b8%bafragment",[65,66],"Android","Fragment","zw6kNcWWbibGeTwLMxpCLu4n37LCz9Uchwjkpz8LiDQ",1,1788763182908]