2012年5月16日 星期三

[Android] [JAVA] 使用intent來切換Activity







1). 設置兩個layout,分別是main.xml、mylayout.xml
layout1設置一個button,可跳到layout2;layout2相同。並設置layout2的背景為灰色

2). 設置兩個java檔,分別設定使用main.xml、mylayout.xml

3). 宣告intent,指定要啟動另外一個class

4). 呼叫Activity,並關閉原本的Activity

5). 在AndroidManifest.xml宣告新增的第二個Activity(java檔)

//=============================================================

[values/color.xml] [main.xml] [mylayout.xml]


//-------------------------------------------------------------------------------------------------------------

[ChangePage2Activity.java]
//使用intent來切換Activity
package com.changepage2;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class ChangePage2Activity extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button b1=(Button)findViewById(R.id.layout1_button);
    b1.setOnClickListener(new Button.OnClickListener(){
      @Override
      public void onClick(View v) {
        // new一個新的intent文件,並指定要啟動的class
        Intent intent = new Intent();
        intent.setClass(ChangePage2Activity.this, 
                    ChangePage2Activity1.class);
        // 呼叫一個Activity
        startActivity(intent);
        // 關閉原本的Activity
        ChangePage2Activity.this.finish();
      }
    });
  }

//-------------------------------------------------------------------------------------------------------------

[ChangePage2Activity1.java]
package com.changepage2;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class ChangePage2Activity1 extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mylayout);

    Button b2=(Button)findViewById(R.id.layout2_button);
    b2.setOnClickListener(new Button.OnClickListener(){
      @Override
      public void onClick(View v) {
        // new一個新的intent文件,並指定要啟動的class
          Intent intent = new Intent();
          intent.setClass(ChangePage2Activity1.this, 
                    ChangePage2Activity.class);
        // 呼叫一個Activity
        startActivity(intent);
        // 關閉原本的Activity
        ChangePage2Activity1.this.finish();
      }
    });
  }
}

//-------------------------------------------------------------------------------------------------------------

[AndroidManifest.xml]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.changepage2"
  android:versionCode="1"
  android:versionName="1.0" >


  <uses-sdk android:minSdkVersion="15" />


  <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
      android:name=".ChangePage2Activity"
      android:label="@string/app_name" >
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />


        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    // 宣告新增的第二個Activity
    <activity android:name="ChangePage2Activity1"></activity>
  </application>


</manifest>

沒有留言:

張貼留言