2015年5月9日 星期六

Intent傳遞資料

傳遞資料A到B方法1
A.class
                //new一個intent物件,並指定Activity切換的class
                Intent intent = new Intent();
                intent.setClass(MainActivity.this, B.class);
                intent.putExtra("name", name);//可放所有基本類別
                //切換Activity
                startActivity(intent);
B.class
Intent intent = this.getIntent();
//取得傳遞過來的資料   
String name = intent.getStringExtra("name");  
傳遞資料A到B方法2
A.class
//new一個intent物件,並指定Activity切換的class
Intent intent = new Intent();
intent.setClass(A.this,B.class);
 
//new一個Bundle物件,並將要傳遞的資料傳入
Bundle bundle = new Bundle();
bundle.putDouble("age",age );//傳遞Double
bundle.putString("name",name);//傳遞String
 
//將Bundle物件傳給intent
intent.putExtras(bundle);
 
//切換Activity
startActivity(intent);
B.class
Bundle bundle = getIntent().getExtras();  
String name = bundle.getString("name");
double age = bundle.getDouble("age");
A到B,B傳到A
A.class
Intent intent = new Intent(A.this,B.class);
//requestCode(識別碼) 型別為 int ,從B傳回來的物件將會有一樣的requestCode
startActivityForResult(intent,requestCode);
B.class
Intent intent = getIntent();
Bundle bundle = new Bundle();
bundle.putString("name",name);  
intent.putExtras(bundle); 
setResult(requestCode, intent); //requestCode需跟A.class的一樣 
B.this.finish();

download: 參考資料:
http://cookiesp.pixnet.net/blog/post/84190702-android-intent%26bundle-%E5%82%B3%E9%81%9E%E8%B3%87%E6%96%99

沒有留言:

張貼留言