Activity是Android組件中最基本也是最常用的一種組件,在一個Android應用中,一個Activity通常就是一個單獨的屏幕。每一個Activity都被實現為一個獨立的類,並且繼承於Activity這個基類。
activity類處於android.app包中,繼承體系如下:
1.java.lang.Object
2.android.content.Context
3.android.app.ApplicationContext
4.android.app.Activity
Activity提供了和用戶交互的可視化界面。創建一個Activity一般是繼承Activity(也可以是LisActivity,MapActivity等),覆蓋Activity的onCreate( )方法,在該方法中調用setContentView( )方法來展示要顯示的視圖,調用findViewById( )方法實例化組件。注意Activity只有在清單文件中聲明才能使用。
要做到兩個Activity之間的切換(也就是從一個Activity啟動另一個Activity),可以使用startActivity( )方法或者startActivityForResult( ) (能夠返回結果)。這兩個方法要傳遞的參數是組件Intent。
下面的實例是MainActivity和SecondActivity之間的切換:
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/hello1"
- />
- <Button
- android:id="@+id/btn"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="轉到SecondActivity"
- />
- </LinearLayout>
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"
- >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/hello2"
- />
- <Button
- android:id="@+id/secondBtn"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="返回"
- />
- </LinearLayout>
MainActivity.java
- package com.android.test.activity;
- 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 MainActivity extends Activity {
- private Button btn;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btn = (Button)findViewById(R.id.btn);
- //響應按鈕btn事件
- btn.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- //顯示方式聲明Intent,直接啟動SecondActivity
- Intent it = new Intent(MainActivity.this,SecondActivity.class);
- //啟動Activity
- startActivity(it);
- }
- });
- }
- }
SecondActivity.java
- package com.android.test.activity;
- 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 {
- private Button secondBtn;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.second);
- secondBtn=(Button)findViewById(R.id.secondBtn);
- //響應按鈕secondBtn事件
- secondBtn.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- //顯示方式聲明Intent,直接啟動MainActivity
- Intent intent = new Intent(SecondActivity.this,MainActivity.class);
- //啟動Activity
- startActivity(intent);
- }
- });
- }
- }