Android推荐使用XML文件设置UI界面,然后用Java代码控制逻辑部分,这体现了MVC思想。
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
我们可以在app\src\main\res\layout目录下定义一个XML文件(R.java文件会自动收录该资源),然后可以在Java代码的Activity组件中通过setContentView(R.layout.<资源文件名字>)显示出来。
在XML文件中添加组件的时候,可以为组件指定android:id属性,然后就可以在Java代码中通过findViewById(R.id.<android:id属性>)访问该组件。
当然android也支持完全使用Java代码设置UI界面,实现类似于Swing,下面是一个简单的例子:
package zxc.blogtest; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout layout = new LinearLayout(this); super.setContentView(layout); layout.setOrientation(LinearLayout.VERTICAL); final TextView show = new TextView(this); Button bn = new Button(this); show.setText("HelloWorld"); bn.setText("Button"); layout.addView(show); layout.addView(bn); } }
创建组件时传入的this是一个Context参数,这是Activity和Service的基类,传入的参数可以让UI组件获取到Android的全局变量。
这种设置UI界面的方式非常不优美,而且和其他的逻辑代码放在一起会让人觉得很混乱,非常不推荐。
关于XML文件,前面已经有了简单的介绍,后面也将会有相当多的博客来介绍这方面的内容,这里就先不说了。