Activity1跳轉到Activity2,用startActivity();那如果由Activity1跳轉到Activity2,再由Activity2回到Activity1且回傳一些資料呢?
那就必須使用startActivityForResult()完成這項工作
startActivityForResult(Intent intent,int requestCode)使用步驟:
- 在來源Activity中使用startActivityForResult()方法啟動目標Activity
- 在目標Activity中使用setResult()方法設置返回值,並調用finish()方法結束目標Activity
- 在來源Activity中重寫onActivityResult()方法,獲得從目標Activity中返回的值
步驟一:
Intent intent = new Intent(this,TargetActivity.class); startActivityForResult(intent, 0);
步驟二:
//創建intent對象,設置年齡為附加參數
Intent intent = new Intent();
intent.putExtra("age", age);
//設置返回值,將intent對象作為資料返回到來源Activity
setResult(RESULT_OK, intent);
finish();
步驟三:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (resultCode) {
case RESULT_CANCELED:
Toast.makeText(this, "未正確返回結果.", Toast.LENGTH_LONG).show();
break;
case RESULT_OK:
int age = data.getIntExtra("age", -1);
if(age!=-1){
Toast.makeText(this, "返回的年齡是:" + age, Toast.LENGTH_LONG).show();
}
break;
}
}
![[Android SDK特色教學] StartActivityForResult返回資料回來 [Android SDK特色教學] StartActivityForResult返回資料回來](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUi9a4lbYGt2AwfOH3KIHtPTFsq4HuS3yGlHHgvkj6CPXM_Jmuojou9PNhpcYnorUpj4Xxzxf0RZUYtvxuQHEgpp8epV3tiTW9cMfZ5GG7g14EtjBiyGU5l-QGX_AHX1srlwtMCe4Tgus/s1600/startActivityResultFor+diagrama.png)
沒有留言 :
張貼留言