格式化

廣告

廣告2

2014年5月24日 星期六

[Android SDK特色教學] StartActivityForResult返回資料回來


 [Android SDK特色教學] StartActivityForResult返回資料回來

Activity1跳轉到Activity2,用startActivity();那如果由Activity1跳轉到Activity2,再由Activity2回到Activity1且回傳一些資料呢?


那就必須使用startActivityForResult()完成這項工作



startActivityForResult(Intent intent,int requestCode)使用步驟:
  1. 在來源Activity中使用startActivityForResult()方法啟動目標Activity
  2. 在目標Activity中使用setResult()方法設置返回值,並調用finish()方法結束目標Activity
  3. 在來源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;
  }
 }

沒有留言 :