2010年6月9日 星期三

Android程式設計(十一) Activity互動作業-1

在Android中,Activity間作業切換或資料傳遞,都必須透過Intent機制。要使用Intent功能,應用程式需要匯入以下類別
import android.content.Intent;
Activity間不傳遞資料
如果我們只要從一個作業書面切換到另一個作業畫面,這二個Activity間不需要資料交換,這種作業很簡單,只要設定好Intent的內容與動作,並把Intent做為startActivity方法之參數,即可啟動另一個Activity。
Intent intent = new Intent (CurrentActivity.this, InvokedActivity.class);
startActivity (intent);
當被啟動的Activity結束(finish),程式會自動返回原Activity。
1. 新增專案。
2. 在專案中加入二個Activity類別:MainActivity.java 及Activity1.java (AndroidMainfest.xml內的<activity>描述也要一併更新)
3. 修改MainActivity 及Activity1使用者介面
4. 修改MainActivity 及Activity1程式碼
//MainActivity.java
public class MainActivity extends Activity {
    @Override
    public void onCreate (Bundle savedInstanceState) {
        Button btnobj;
        super.onCreate (savedInstanceState);
        setContentView (R.layout.main);
        btnobj = (Button) findViewById (R.id.btnINVOKE01);
        btnobj.setOnClickListener (InvokeActivity1);
    }
    private Button.OnClickListener InvokeActivity1 = new Button.OnClickListener () {
        public void onClick (View v) {
            // TODO Auto-generated method stub
            Intent intent = new Intent (MainActivity.this, Activity1.class);
            startActivity (intent);
        }
    };
}
//Activity1.java
public class Activity1 extends Activity {
    @Override
    protected void onCreate (Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        Button btnobj;
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity1);
        btnobj = (Button) findViewById (R.id.btnCLOSE);
        btnobj.setOnClickListener (CloseActivity1);
    }
    private Button.OnClickListener CloseActivity1 = new Button.OnClickListener () {
        public void onClick (View v) {
            // TODO Auto-generated method stub
            finish ();
        }
    };
}

Android程式設計(十二) Activity互動作業-2