Bổ sung Trả lời: Quy ước đặt tên cho Chuỗi khóa
Quá trình truyền dữ liệu thực tế đã được trả lời, tuy nhiên hầu hết các câu trả lời đều sử dụng chuỗi mã hóa cứng cho tên khóa trong Ý định. Điều này thường tốt khi chỉ được sử dụng trong ứng dụng của bạn. Tuy nhiên, tài liệu khuyến nghị sử dụng các EXTRA_*
hằng số cho các kiểu dữ liệu được tiêu chuẩn hóa.
Ví dụ 1: Sử dụng Intent.EXTRA_*
các phím
Hoạt động đầu tiên
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(Intent.EXTRA_TEXT, "my text");
startActivity(intent);
Hoạt động thứ hai:
Intent intent = getIntent();
String myText = intent.getExtras().getString(Intent.EXTRA_TEXT);
Ví dụ 2: Xác định static final
khóa riêng của bạn
Nếu một trong các Intent.EXTRA_*
Chuỗi không phù hợp với nhu cầu của bạn, bạn có thể xác định chuỗi của riêng mình khi bắt đầu hoạt động đầu tiên.
static final String EXTRA_STUFF = "com.myPackageName.EXTRA_STUFF";
Bao gồm tên gói chỉ là một quy ước nếu bạn chỉ sử dụng khóa trong ứng dụng của riêng bạn. Nhưng điều cần thiết là tránh xung đột khi đặt tên nếu bạn đang tạo một loại dịch vụ mà các ứng dụng khác có thể gọi bằng Ý định.
Hoạt động đầu tiên:
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(EXTRA_STUFF, "my text");
startActivity(intent);
Hoạt động thứ hai:
Intent intent = getIntent();
String myText = intent.getExtras().getString(FirstActivity.EXTRA_STUFF);
Ví dụ 3: Sử dụng khóa tài nguyên Chuỗi
Mặc dù không được đề cập trong tài liệu, câu trả lời này khuyên bạn nên sử dụng tài nguyên Chuỗi để tránh phụ thuộc giữa các hoạt động.
chuỗi DOM
<string name="EXTRA_STUFF">com.myPackageName.MY_NAME</string>
Hoạt động đầu tiên
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(getString(R.string.EXTRA_STUFF), "my text");
startActivity(intent);
Hoạt động thứ hai
Intent intent = getIntent();
String myText = intent.getExtras().getString(getString(R.string.EXTRA_STUFF));