如同在WEB应用中,经常会从一个页面跳到另一个页面,Android程序中也经常从一个Activity跳转到另一个Activity,呈现不同的界面给用户。这就涉及到从一个Activity中启动另一个Activity,可以使用startActivity方法或startActivityForResult()方法(可以返回处理结果)。这两个方法中要传递的参数是Android程序中另外一个非常重要的组件Intent,Intent是同一组件内或不同组件间的信使,有关Intent请参见后续第6章的实例介绍。
本例演示采用startActivity方法来启动另一个Activity。
1. 布局文件first.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" > <Button android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Second Activity"></Button> </LinearLayout>
2. 布局文件second.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"> <Button android:id="@+id/Button02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="返回"></Button> </LinearLayout>
3. FirstActivity.java
package com.amaker.test; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class FirstActivity extends Activity { /** Called when the activity is first created. */ private Button b1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.first); b1 = (Button) findViewById(R.id.Button01); // 响应按键事件 b1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 显示方式声明Intent,直接启动SecondActivity Intent intent = new Intent(FirstActivity.this,SecondActivity.class); startActivity(intent); } }); } }
4. SecondActivity.java
package com.amaker.test; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class SecondActivity extends Activity { /** Called when the activity is first created. */ private Button b2; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); b2 = (Button) findViewById(R.id.Button02); // 响应按键事件 b2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 显示方式声明Intent,直接启动FirstActivity(返回前一个Activity) Intent intent = new Intent(SecondActivity.this,FirstActivity.class); startActivity(intent); } }); } }
5. 运行结果
点击“SecondActivity”按钮后启动第二个Activity:
Chapter05_Activity_StartActivity实例源码:
最新评论