2011-01-04 23 views
9

Tôi muốn được trợ giúp trong việc gửi dữ liệu về một số Activity đang chạy.Gửi dữ liệu ngược về hoạt động trước

Tôi muốn người dùng có thể chọn một tùy chọn từ danh sách và sau đó lựa chọn đó được sử dụng trong hoạt động trước đó. Tôi biết làm thế nào để làm điều đó đi về phía trước bằng cách sử dụng ý định nhưng không thể thấy làm thế nào mà sẽ làm việc trong trường hợp này mà không có một số tùy ý của các cửa sổ cùng một hoạt động chạy cùng một lúc.

Sắp xếp như thay đổi cài đặt trong điện thoại nhưng có nhiều quyền truy cập vào chuỗi. Nếu bạn cần thêm thông tin, hãy hỏi.

Trả lời

7

Có hai cách để làm điều này, đầu tiên là thay vì gọi startActivity(), gọi startActivityForResult(), đây là những gì các tài liệu có nói về nó:

Đôi khi bạn muốn có được một kết quả từ một hoạt động khi nó kết thúc. Ví dụ: bạn có thể bắt đầu hoạt động cho phép người dùng chọn một người trong danh sách địa chỉ liên hệ; khi nó kết thúc, nó sẽ trả về người đã được chọn. Để làm điều này, bạn gọi phiên bản startActivityForResult (Intent, int) với tham số nguyên thứ hai xác định cuộc gọi. Kết quả sẽ trở lại thông qua phương thức onActivityResult (int, int, Intent) của bạn.

http://developer.android.com/reference/android/app/Activity.html

Một cách khác để làm điều đó là để gửi một gói tin broadcast ở phần cuối của hoạt động của bạn, và đăng ký một broadcastReceiver() trong hoạt động ban đầu của bạn.

1

Nếu bạn bắt đầu hoạt động thứ hai bằng cách sử dụng startActivityForResult() thay vì startActivity, khi hoạt động thứ hai hoàn tất, bạn có thể đặt resultCodeIntent. Sau đó nó sẽ gọi phương thức:

protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
} 

trong Activity đầu tiên của bạn, nơi bạn có thể đọc resultCodeIntent dữ liệu

Các vấn đề liên quan