Cách chính xác để chuyển gói cho hoạt động đang được khởi chạy từ hiện tại là gì? Thuộc tính được chia sẻ?Chuyển một gói trên startActivity()?
Trả lời
Bạn có một vài lựa chọn:
1) Sử dụng các Bundle từ Intent:
Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);
2) Tạo một Bundle mới
Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);
3) Sử dụng các phương pháp putExtra() shortcut của Intent
Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);
Sau đó, trong Hoạt động khởi chạy, bạn sẽ đọc chúng qua:
String value = getIntent().getExtras().getString(key)
LƯU Ý: Gói có "được" và "đặt" phương pháp cho tất cả các loại nguyên thủy, Parcelables, và Serializables . Tôi chỉ sử dụng Strings cho mục đích trình diễn.
Bạn có thể sử dụng Bundle từ tiếp cận mục đích:
Bundle extras = myIntent.getExtras();
extras.put*(info);
Hoặc cả một bó:
myIntent.putExtras(myBundle);
Đây có phải là những gì bạn đang tìm kiếm?
Và từ ý định kết quả bạn gọi getIntent(). GetExtras() .get *() để có được những gì được lưu trữ trước đó. – yanchenko
Truyền dữ liệu từ một Hoạt động để hoạt động trong android
Một ý định chứa các hành động và dữ liệu tùy chọn bổ sung. Dữ liệu có thể được chuyển cho hoạt động khác bằng phương pháp putExtra()
. Dữ liệu được truyền dưới dạng tính năng bổ sung và là key/value pairs
. Khóa luôn là một Chuỗi. Giá trị bạn có thể sử dụng các kiểu dữ liệu nguyên thủy int, float, ký tự, v.v. Chúng tôi cũng có thể chuyển các đối tượng Parceable and Serializable
từ một hoạt động này sang hoạt động khác.
Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);
Lấy dữ liệu gói từ hoạt động android
Bạn có thể lấy thông tin sử dụng getData()
phương pháp trên đối tượng Intent. Bạn có thể truy xuất đối tượng Mục đích thông qua phương thức getIntent()
.
Intent intent = getIntent();
if (null != intent) { //Null Checking
String StrData= intent.getStringExtra(KEY);
int NoOfData = intent.getIntExtra(KEY, defaultValue);
boolean booleanData = intent.getBooleanExtra(KEY, defaultValue);
char charData = intent.getCharExtra(KEY, defaultValue);
}
Bạn có thể chuyển giá trị từ một hoạt động này sang hoạt động khác bằng Gói. Trong hoạt động hiện tại của bạn, hãy tạo một nhóm và đặt gói cho giá trị cụ thể và chuyển gói đó đến mục đích.
Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);
Hiện tại, bạn có thể lấy gói này và thử lại giá trị của mình.
Bundle bundle = getArguments();
String value = bundle.getString(key);
Bạn cũng có thể chuyển dữ liệu thông qua mục đích. Trong hoạt động hiện tại của bạn, thiết lập ý định như thế này,
Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);
Bây giờ trong NewActivity của bạn, bạn có thể nhận được giá trị mà từ ý định như thế này,
String value = getIntent().getExtras().getString(key);
- 1. startActivity() từ BroadcastReceiver
- 2. DialogFragment crash Hoạt động khi gọi startActivity()
- 3. startActivity tạo phiên bản Hoạt động mới mỗi lần
- 4. Dữ liệu lớn chuyển thành "giao dịch" từ gói gói
- 5. cài đặt gói xtsExtra trên một máy cửa sổ
- 6. Tại sao tôi không thể SuppWingsings trên một gói?
- 7. Gói Jenkins trên Groovy Classpath?
- 8. Chuyển toàn bộ gói đến cụm tuyết
- 9. Cách chuyển Gói từ Fragment đến Fragment
- 10. Không thể thực hiện startActivity() với Trình chọn chỉ yêu cầu một lần cho mỗi ứng dụng
- 11. Cách chuyển đổi luồng byte thành luồng gói trong C89 trên thiết bị nhúng
- 12. Gói các tệp trong một gói thực thi
- 13. Đặt một bitmap vào một gói
- 14. mục đích của việc sử dụng Intent.createChooser() trong startActivity() trong khi gửi email trong Android
- 15. Gói phát sóng UDP trên mạng con
- 16. Cài đặt gói rCharts trên R 2.15.2
- 17. Đặt tên gói trên Google Play
- 18. Gói Java trong gói?
- 19. tay loại bỏ Python gói trên Heroku
- 20. Cài đặt gói địa phương trên Meteor
- 21. Lỗi gói/Xuất bản trên Azure
- 22. Cài đặt gói thử nghiệm trên debian
- 23. MS Deploy có thể thực hiện một gói và chuyển đổi, nhưng không triển khai không?
- 24. Tải gói toán học từ trong một gói
- 25. @link đến một gói khác bên trong gói package-info.java
- 26. Đóng gói nhiều rpms trong một tệp
- 27. gói một mảng sần sờ vào trăn
- 28. Nhiều tệp package.json trong một gói
- 29. NuGet Package Restore không khôi phục các gói trên build
- 30. Chặn và chuyển tiếp gói TCP dưới các cửa sổ
hướng dẫn nhỏ tuyệt vời để mọi người hiểu. –
@fiXedd, Cảm ơn bạn rất nhiều –
@MicroR, không có sự khác biệt. –