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