a. XML预编写界面(常用、推荐方法):将一个界面设计写在一个XML文件里,由android程序在运行时读取并绘制界面。该方法将设计和编码分离,易于软件的维护开发。
b. 程序运行时界面:将界面直接编码写在程序里,对于后期如果要修改界面,不得不修改源代码。不推荐此方法。
一个XML文件就是一棵树,节点之间通过父子关系连接。一个子节点只能有一个父节点,一个父节点可以有多个子节点。这个和android的界面设计是一样的,在android里,一个界面控件(如按钮,下拉框,输入框等)叫做一个View,多个View放在一个界面里,这个界面叫做Layout。
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
这里可以看到有两层结构,一个是LinearLayout,其下有一个子节点TextView。解释一下:
- xmlns:android="http://schemas.android.com/apk/res/android":每个layout都要有的android namespace定义。
- android:orientation="vertical":朝向,竖直显示还是横向显示。
- android:layout_width="fill_parent"
- android:layout_height="fill_parent":长宽,这里设置成填充父节点继承下来的全部可用空间。
- android:text="@string/hello":设置TextView的显示文本为一个名为hello的string。这个string的值可以通过找到strings.xml里找到。这里是一个资源引用
<resources>
<string name="app_name">hello</string>
<string name="hello">Hello world!</string>
<string name="add">添加</string>
</resources>
项目文件说明:
AndroidManifest.xml— 这个文件是 Android 应用程序的应用程序部署描述符。
Main.xml — 这个文件包含 Android 活动所用的视觉元素或资源。
R.java — 这个文件是由 Android Developer Tools 自动生成的,它把视觉资源 “连接” 到 Java 源代码。
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
public class hello extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("测试TEST111");
//setContentView(R.layout.activity_main);
setContentView(tv);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}