解决方案 »

  1.   

    贴源码如下:
    /**
         * Set the activity content from a layout resource.  The resource will be
         * inflated, adding all top-level views to the activity.
         *
         * @param layoutResID Resource ID to be inflated.
         * 
         * @see #setContentView(android.view.View)
         * @see #setContentView(android.view.View, android.view.ViewGroup.LayoutParams)
         */
        public void setContentView(int layoutResID) {
            getWindow().setContentView(layoutResID);
            initActionBar();
        }
      

  2.   

    谢过,我的意思是跟踪源码的调用,setContentView最终是如何实现的?
      

  3.   

    追踪到class文件中去看,发现只有一个抽象方法,对于它最终是如何实现的,我也不知道了(不好意思啦)。不过,在android中,有很多这种类似的封装好了的方法,这其实是android开发机制的体现,你只要弄清楚是实现什么功能、并遵循这样的规则进行开发就好了,真正要去弄懂最终如何实现,比较难诶
      

  4.   


    getWindow()返回的mWindow静态类型是Window,Window是抽象类,setContentWindow()的确是抽象方法,但是mWindow的实际类型必是一个继承了Window实现了setContentView()方法的Window子类型,我的问题其实就是mWindow的实际类型是什么?这个类中的setContentView()方法是如何实现的。