使用Views创建Activity的UI
一个新的Activity以一个诱惑人的空屏幕开始,在其上你可以放置自己的UI。为了设置UI,调用setContentView方法,传递View的实例(一般是一个layout)去显示。由于空屏幕不是特别的令人鼓舞,所以,绝大多数你在重写onCreate处理函数的时候都会使用setContentView来指定Activity的UI。
setContentView方法既可以接受一个layout的资源ID(如第3章所述),也可以是一个View实例。这个允许你在代码中定义UI,或者使用外置layout资源的首选技巧。
使用layout资源能够降低应用程序的逻辑与显示层的耦合,为不用修改代码而改变显示提供了灵活性。它能为不同的硬件配置指定不同的layout,甚至在运行时基于硬件的变化(如屏幕方向)变更UI。
接下来的代码片段显示了如何使用外部layout资源来设定Activity的UI。你也可以通过findViewById方法来获得layout中view的引用。下面的代码假设main.xml存在于工程的/res/layout文件夹中。
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
TextView myTextView = (TextView)findViewById(R.id.myTextView);
}
如果你喜欢传统的方式,你可以在代码里指定UI。下面的代码片段显示了如何指定新的TextView作为UI:
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
TextView myTextView = new TextView(this);
setContentView(myTextView);
myTextView.setText(“Hello, Android”);
}
setContentView方法接受单个View实例;所以,你得保证使用单个View或View Group来得到一个layout的引用,从而来组合多个控件。