2012年7月16日 星期一

Android:Intent

類型I (比較單純)

// 建構子參數傳入一個用字串表示的動作,例如:Intent.ACTION_VIEW,Intent.ACTION_CALL等等...以及一個Uri類別物件,常以Uri.parse(String)來取得

1. Intent intent=new Intent(String action, Uri uri)
ex:Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.google.com"));
    Intent geo=new Intent(Intent.ACTION_VIEW,Uri.parse("geo:23.962411,120.581818"));

//啟動
2. startActivity(intent);

-----------------------------------------------------------------------------------------


//建構子參數只傳入一個字串代表的動作
1. Intent intent=new Intent(String action)
ex:挑選一個聯絡人

//Intent動作為挑選
Intent contact=new Intent(Intent.ACTION_PICK);
//設定Intent的mime 類型
contact.setType(ContactsContract.Contacts.CONTENT_TYPE);
//啟動,startActivityForResult( ) 帶有兩個參數,Intent物件以及 request code
startActivityForResult(contact,100);

//當被呼叫的Activity結束後,系統會將她回傳三個參數,分別為requestCode,resultCode
以及系統回傳的Intent物件
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
                //當requestCode為100,且回傳的resultCode為RESULT_OK此常數時
if(requestCode==100){
if(resultCode==RESULT_OK){
                                //利用第三個參數中的Intent物件參數取回資料
String uri=data.getData().toString();
Toast.makeText(this, uri, 50000).show();
                                //再建立一個Intent物件執行瀏覽或是編輯聯絡人動作
//Intent intent=new Intent(Intent.ACTION_EDIT,Uri.parse(uri));
Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse(uri));
startActivity(intent);
}
}

沒有留言:

張貼留言