คำตอบเพิ่มเติม: แบบแผนการตั้งชื่อสำหรับ Key String
กระบวนการที่แท้จริงของการส่งผ่านข้อมูลได้รับการตอบแล้วอย่างไรก็ตามคำตอบส่วนใหญ่ใช้สตริงที่เข้ารหัสอย่างหนักสำหรับชื่อคีย์ใน Intent โดยปกติจะใช้ได้เมื่อใช้ภายในแอปของคุณเท่านั้น อย่างไรก็ตามเอกสารแนะนำให้ใช้EXTRA_*
ค่าคงที่สำหรับชนิดข้อมูลมาตรฐาน
ตัวอย่างที่ 1: การใช้Intent.EXTRA_*
กุญแจ
กิจกรรมแรก
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(Intent.EXTRA_TEXT, "my text");
startActivity(intent);
กิจกรรมที่สอง:
Intent intent = getIntent();
String myText = intent.getExtras().getString(Intent.EXTRA_TEXT);
ตัวอย่างที่ 2: การกำหนดstatic final
คีย์ของคุณเอง
หากหนึ่งในIntent.EXTRA_*
เงื่อนไขไม่ตรงกับความต้องการของคุณคุณสามารถกำหนดของคุณเองที่จุดเริ่มต้นของกิจกรรมแรก
static final String EXTRA_STUFF = "com.myPackageName.EXTRA_STUFF";
การรวมชื่อแพ็คเกจเป็นเพียงการประชุมหากคุณใช้รหัสในแอปของคุณเท่านั้น แต่จำเป็นที่จะต้องหลีกเลี่ยงความขัดแย้งในการตั้งชื่อหากคุณกำลังสร้างบริการบางประเภทที่แอปอื่นสามารถโทรด้วยเจตนา
กิจกรรมแรก:
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(EXTRA_STUFF, "my text");
startActivity(intent);
กิจกรรมที่สอง:
Intent intent = getIntent();
String myText = intent.getExtras().getString(FirstActivity.EXTRA_STUFF);
ตัวอย่างที่ 3: การใช้คีย์ทรัพยากรของสตริง
แม้ว่าจะไม่ได้กล่าวถึงในเอกสารประกอบคำตอบนี้แนะนำให้ใช้ทรัพยากร String เพื่อหลีกเลี่ยงการพึ่งพาระหว่างกิจกรรม
strings.xml
<string name="EXTRA_STUFF">com.myPackageName.MY_NAME</string>
กิจกรรมแรก
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(getString(R.string.EXTRA_STUFF), "my text");
startActivity(intent);
กิจกรรมที่สอง
Intent intent = getIntent();
String myText = intent.getExtras().getString(getString(R.string.EXTRA_STUFF));