歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android之啟動一個activity並且獲得回傳數據

Android之啟動一個activity並且獲得回傳數據

日期:2017/3/1 11:17:14   编辑:Linux編程

在Android中,如果想要啟動一個activity,可以用startActivity,或者是startActivityForResult(intent, GET_CODE)

如果是想要得到新的activity回傳的數據的話,必須使用第二個方法startActivityForResult(intent, GET_CODE);

並且在原來的activity中覆寫onActivityResult(int requestCode, int resultCode,Intent data)來對獲取的數據進行處理

例如在原來的activity中有如下的代碼對接受到的數據進行處理

  1. /**
  2. * 該方法是回調方法,當startActivityForResult啟動的activity結束後
  3. *
  4. * @param requestCode 傳遞給startActivity()的請求碼
  5. * @param resultCode 從啟動的activity中,在setResult()設置的一個結果碼,一般用來標識處理的結果
  6. * @param data 用來接受傳遞過來的數據
  7. */
  8. @Override
  9. protected void onActivityResult(int requestCode, int resultCode,
  10. Intent data) {
  11. if (requestCode == GET_CODE) {
  12. Editable text = (Editable)mResults.getText();
  13. if (resultCode == RESULT_CANCELED) {
  14. text.append("(cancelled)");
  15. // Our protocol with the sending activity is that it will send
  16. // text in 'data' as its result.
  17. } else {
  18. text.append("(okay ");
  19. text.append(Integer.toString(resultCode));
  20. text.append(") ");
  21. if (data != null) {
  22. text.append(data.getAction());
  23. }
  24. }
  25. text.append("\n");
  26. }
  27. }

在開啟新的activity的時候,有下面的程序

  1. //開啟一個activity,並且想得到返回數據. 會連同GET_CODE一起返回
  2. Intent intent = new Intent(ReceiveResult.this, SendResult.class);
  3. startActivityForResult(intent, GET_CODE);

在新的activity中有如下的程序
  1. setResult(RESULT_OK, (new Intent()).setAction("Corky!"));
  2. finish();
Copyright © Linux教程網 All Rights Reserved