1. 程式人生 > >[Android] 多Activity的建立註冊以及相互切換基礎(1)

[Android] 多Activity的建立註冊以及相互切換基礎(1)

今天學習了建立第二個Activity 以及從Main_Activity切換到Second_Activity

下面是關於這個過程的一個總結:

  1. 建立一個新的xml佈局檔案,(res>layout)寫好佈局類容
  2. 建立一個新的Activity類(Class)(src>SecondActivity.java)
  3. 在Manifest檔案中對新建立的Activity進行註冊

現在對建立新的Activity類的方法進行說明:

首先建立新的Activity類,在Eclipse中創建出來的java檔案就是一個普通的類,所以我們要把新建立的SecondActivity 類繼承Activity 類:

public class SecondActivity extends Activity{}
public class SecondActivity extends ActionBarActivity{}
說明:extends Activity 和 extends ActionBarActivity 都是可以的,目前而言我認為ActionBarActivity 是Activity的一個子類,作用估計是主題樣式的不同

然後要重寫(override)SecondActivity 裡面的 onCreate 方法, (Source > Override or implements methods..選擇需要的方法,只有一個onCreate()方法)

public class SecondActivity extends Activity{
  @Override
   protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
//以上是系統自動生成的
   setContentView(R.layout.second);
// setContentView ()是用來繫結需要顯示的Activity 的方法
// R.layout.second 就是在res >layout 裡面新建的xml檔名
// 以上就是繫結好了的一個Activity
  }
}

setContentView(View view)


然後是在manifest.xml檔案裡面對新建的Activity進行註冊

 <activity 
 android:name=".SecondActivity"
 android:label="Second">
 
 </activity>
說明:android:name=""的值是包名.新建立的SecondActivity類名(注意大小寫)
label是在左上角顯示的標籤
以下是MainActivity的註冊程式碼
 <activity
 android:name=".MainActivity"
 android:label="@string/app_name" >
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />

 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>
其中的<intent-filter></intent-filter>是控制程式的預設入口的子標籤

然後是從MainActivity通過點選button切換到SecondActivity
  1. 宣告button物件,然後再button=(Button)findViewById(R.id.button);進行繫結
  2. 宣告Onclick監聽類,生成監聽物件
  3. button繫結監聽物件

下面是最為重要的ButtonOnclickListener類裡面的方法的重寫,在這裡面實現Activity 的切換

class ButtonListener implements OnClickListener{

 @Override
 public void onClick(View v) {
 // TODO Auto-generated method stub
 Intent intent =new Intent();
 //Intent 是一個意向類,用它實現對Activity之間的切換
 //setClass 的第一個引數是一個Context物件
 //Context 是一個類,Activity是Context的子類,也就是說,所有的Activity物件都可以向上轉型為Context對像
 //SetClass 的第二個引數是一個Class物件,在當前場景下,應該傳入的是需要啟動的Activity的Class物件
 intent.setClass(MainActivity.this, SecondActivity.class);
 //MainActivity.this 呼叫的是外部類的物件
 startActivity(intent);
 //startActivity(intent)方法直接呼叫即可
 }
 }