Activity是Android应用中负责和用户交互的组件,大致上可以认为是Swing编程中的JFrame控件.
区别在于:
JFarme本身可以设置布局管理器,不断的向JFarme中添加组件.
Activity只能通过setContentView(View)来显示指定组件.
View组件是所有UI控件,容器控件的基类,View组件就是Android应用中用户实实在在看到的部分.但是View组件需要放到容器组件中,或者使用Activity将它显示出来.如果需要通过某个Activity把指定的View显示出来,调用Activity的setContentView()方法即可.
setContentView()方法可以接受一个View对象作为参数,例如:
//创建一个线性布局管理器
LinearLayout layout = new LinearLayout(this);
//设置该Activity显示layout
super.setContentView(layout);
上面的程序通过代码创建一个LinearLayout对象(它是ViewGroup的子类,ViewGroup又是View的子类),接着调用Activity的setContentView(layout)把这个布局显示出来.
setContentView()方法也可以接受一个布局资源的ID作为参数,例如:
//设置该Activity显示main.xml文件定义的View
setContentView(R.layout.main);
实际是Activity是Window的容器,Activity包含一个getWindow()方法,该方法返回该Activity所包含的窗口.对于Activity而言,开发者一般不需要关心Window对象.如果应用程序不调用Activity的setContentView()来设置该窗口的显示内容,那么该窗口显示一个空窗口.
Activity为Android应用提供了可视化用户界面,如果该Android应用需要多个用户界面,那么这个Android应用将会包含多个Activity,多个Activity组成了Activity栈,当前活动的Activity位于栈顶.(堆是先进先出,栈是先进后出)
Activity包含了一个setTheme(int resid)方法来设置其窗口风格,例如我们希望窗口