1、7.Android 里的类别继承及对象组合在 Android里定义了如下的类别继承(Class Inheritance)体系:还有如下的对象组合(Object Composition)关系:ViewGroup的子孙类别(如下图的 LinearLayout),也自然继承了上图的组合关系:同样地,View 的子孙类别也具有同样的继承,可推导出如下之组合关系:这些是 Android 已经提供的基类(Base Class)。在这里,话插一下,我在北京程序员杂志上写的 一文里,我称之为畚箕。Android 应用程序的开发者就如同挑畚箕的人,在中华历史上,有个家喻户晓的伟大人物就是愚公,它是挑畚箕的人,想
2、把泰山的土一担一担挑去填北海。现在,我就来扮演愚公的角色,挑一担(写个 Android 应用程序)给你看看,但是请你不要叫我愚公就是。此外,我这个超级愚公还可以一根扁担挑 3 个畚箕呢!首先建立一个 Android Project:我这个愚公希望手机画面出现如下:在画面上输入一个字符串,并按下时,就在画面 title区输出了该字符串:现在开始写程序了,拿着一根扁担(Layout)和两三个畚箕( 一个 EditText、和两个 Button)。程序代码如下:package com.misoo.pkaz;import android.app.Activity;import android.grap
3、hics.Color;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.LinearLayout;public class ac01 extends Activity implements OnClickListener private final int WC = LinearLayout.Layou
4、tParams.WRAP_CONTENT; private final int FP = LinearLayout.LayoutParams.FILL_PARENT; private Button btn, btn2; private EditText et;Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);this.show_layout();public void show_layout()LinearLayout layout = new LinearLay
5、out(this);layout.setOrientation(LinearLayout.VERTICAL);et = new EditText(this);LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(FP, WC);layout.addView(et, param);btn = new Button(this);LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(WC, WC);param2.topMargin = 5;btn.se
6、tText(“OK“);btn.setBackgroundResource(R.drawable.x_blue3);btn.setOnClickListener(this);layout.addView(btn, param2);btn2 = new Button(this);btn2.setText(“Exit“);btn2.setTextColor(Color.RED);btn2.setBackgroundResource(R.drawable.x_gray3);btn2.setOnClickListener(this);layout.addView(btn2, param2);setContentView(layout);public void onClick(View v) if(v = btn)setTitle(et.getText();else if(v = btn2)finish();透过 layout 扁担的 addView()函数就将畚箕一个一个挑起来了。