Câu trả lời:
Bạn có một vài lựa chọn:
Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);
2) Tạo một gói mới
Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);
3) Sử dụng phương thức phím tắt putExtra () của Ý định
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 Ý: Các gói có các phương thức "get" và "put" cho tất cả các kiểu nguyên thủy, Parcelables và serializables. Tôi chỉ sử dụng Chuỗi cho mục đích trình diễn.
Bạn có thể sử dụng Gói từ Ý định:
Bundle extras = myIntent.getExtras();
extras.put*(info);
Hoặc toàn bộ gói:
myIntent.putExtras(myBundle);
Đây có phải là những gì bạn đang tìm kiếm?
Truyền dữ liệu từ một Hoạt động sang Hoạt động trong Android
Một ý định chứa hành động và tùy chọn dữ liệu bổ sung. Dữ liệu có thể được chuyển đến hoạt động khác bằng putExtra()
phương pháp ý định . Dữ liệu được truyền dưới dạng bổ sung và được key/value pairs
. Khóa luôn là một Chuỗi. Là giá trị bạn có thể sử dụng các kiểu dữ liệu nguyên thủy int, float, chars, v.v. Chúng ta cũng có thể truyền Parceable and Serializable
các đối tượng 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 bằng getData()
các phương thức trên đối tượng Intent. Các Ý định đối tượng có thể được truy xuất thông qua các getIntent()
phương pháp.
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 các giá trị 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, tạo một gói và đặt gói cho giá trị cụ thể và chuyển gói đó cho ý định.
Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);
Bây giờ trong NewActivity của bạn, bạn có thể nhận gói này và lấy lại giá trị của bạn.
Bundle bundle = getArguments();
String value = bundle.getString(key);
Bạn cũng có thể truyền dữ liệu thông qua ý định. Trong hoạt động hiện tại của bạn, hãy đặt ý đị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ị đó từ ý định như thế này,
String value = getIntent().getExtras().getString(key);
Viết đây là hoạt động bạn đang ở:
Intent intent = new Intent(CurrentActivity.this,NextActivity.class);
intent.putExtras("string_name","string_to_pass");
startActivity(intent);
Trong NextActivity.java
Intent getIntent = getIntent();
//call a TextView object to set the string to
TextView text = (TextView)findViewById(R.id.textview_id);
text.setText(getIntent.getStringExtra("string_name"));
Điều này làm việc cho tôi, bạn có thể thử nó.
bạn có thể sử dụng mã này trong hoạt động đầu tiên của mình :
Intent i = new Intent(Context, your second activity.class);
i.putExtra("key_value", "your object");
startActivity(i);
và nhận đối tượng trong hoạt động thứ hai :
Intent in = getIntent();
Bundle content = in.getExtras();
// check null
if (content != null) {
String content = content_search.getString("key_value");
}