来源:http://www.sf.org.cn/Android/lumen/20976.html Android 学习笔记(2)-初识 Activity
根据文档的解释,Activity 是 Android 开发中非常重要的一个基础类。我把它想像
成 J2ME 中的 Display 类,或者是 Win32平台上的 Form 类,也许不准确,但是它的重要性 我觉得应该是一样的(当然,如果我们写的是一个没有界面的应用,例如后台运行的服 务之类的,可以不用 Display 的)。 1. 在一个 Activity 中使用多个 View
如果把 Activity 看作 MVC 中的 Control?它负责管理 UI 和接受事件 (包括用户的输 入), 虽然说一个 Activity 通常对应一个屏幕, 但事实上, 我们是可以只用一个 Activity 管理多个不同的 View 来实现简单的逻辑。
首先,我们增加一个新的资源描述 layout/second.xml。
android:orientation=\android:layout_width=\android:layout_height=\> android:layout_width=\android:layout_height=\android:text=\/>
除了一个“Hello 中国”以外,增加一个按钮可以返回前一个界面。然后,在代码中 我们要为 helloTwo 增加两个方法,setViewOneCommand 和 setViewTwoCommand,分别处 理一下在不同界面时,从资源里加载组件并为组件绑定一个事件处理器。
public void setViewOneCommand()
{
Button btn = (Button)findViewById(R.id.go); btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
helloTwo.this.setContentView(R.layout.second); helloTwo.this.setViewTwoCommand(); } });
Button btnExit=(Button)findViewById(R.id.exit);
btnExit.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){ helloTwo.this.finish(); } }); }
public void setViewTwoCommand()
{
Button btnBack=(Button)findViewById(R.id.go2);
btnBack.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
helloTwo.this.setContentView(R.layout.main); helloTwo.this.setViewOneCommand(); } }); }
最后,我们需要在 onCreate 的时候,也就是启动后的 main 界面上设置一下按钮事 件处理器。新的 onCreate 方法如下:
public void onCreate(Bundle icicle) { super.onCreate(icicle);
setTheme(android.R.style.Theme_Dark); setContentView(R.layout.main); setViewOneCommand(); }
编译,运行,OK。
2. 还是回到正道上,多个 Activity 之间的跳转
Android 中提供一个叫 Intent 的类来实现屏幕之间的跳转,按文档的说法,似乎他 们也建议采用这种方法,Intent 的用法比较复杂,现在我先看看它最简单的用法。
先在应用中增加两个 Activity,这需要修改 AndroidManifest.xml文件了,如下:
package=\ />
很简单,就是加一个标签而已,新标签的 class 是.HelloThreeB,显示的应用标题 与前一个 Activity 一样而已,然后第二步就是修改一个 HelloThree 类的实现,在 onCreate 方法中绑定按钮的事件处理器:
public void onCreate(Bundle icicle) { super.onCreate(icicle);
setTheme(android.R.style.Theme_Dark); setContentView(R.layout.main); setViewOneCommand(); }
public void setViewOneCommand() {