各位高手,在android可以通过读布局文件findViewById(R.id.xxx)来创建一个控件,也可以通过代码用create像创建对象那样创建,请问这2种方法有却别吗?

解决方案 »

  1.   

    使用XML属于IOC 控制反转,创建的对象一样的只是过程不同,前者实现了行为和布局的分离,而后者还要在类中考虑控件的布局;
    本质没区别,设计模式不同,像一个人专门负责布局(XML)而另一个主要负责类的行为
      

  2.   

    findViewById 不是创建. 创建过程一般在你setContentView(int id)的时候. find只是找. 如果你前面没有setContentView,你调用findviewbyid会返回一个Null.create就是创建了.不过你一般创建view,不用create , 直接用构造函数就是.  倒是activity有个Oncreate,你是不是弄混了?
      

  3.   

    执行结果一样.
    只是在XML中先定义控件,再findViewById()的形式实现了MVC,可以分离UI和逻辑,对代码的维护和国际化有好处.