2009-04-20 22 views

Trả lời

359

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.

+3

hướng dẫn nhỏ tuyệt vời để mọi người hiểu. –

+1

@fiXedd, Cảm ơn bạn rất nhiều –

+0

@MicroR, không có sự khác biệt. –

17

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?

+1

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

10

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); 
    } 
0

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); 
Các vấn đề liên quan