การส่งค่าผ่านระหว่าง Activity กับ Activity (ตอน 2)

จากที่ครั้งก่อน การส่งค่าผ่านระหว่าง Activity กับ Activity (ตอน 1) เป็นการส่งค่าจาก Activity ไปยังอีก Activity คราวนี้จะเป็นการส่งค่ากลับมาหรือส่งผลลัพธ์กลับมายัง Activity เดิมที่ทำการ request ไป หากใครไม่ได้ทำหรืออ่านจากบทความก่อนให้กลับไปอ่านก่อนแล้วทำการดาวโหลดโค้ดเพื่อความต่อเนื่อง

หัดเขียน android

ตอนจากครั้งก่อนก็ให้กลับไปที่ MainActivity แล้วไปที่ Source -> Override/Implement Methods แล้วเลือกทำการ implement method ที่มีชื่อว่า onActivityResult

สอน android implement

เมื่อเลือกทำการ implement จะเห็นว่ามีการส่ง argument มาให้หลายค่าจะประกอบด้วย requestCode คือรหัสที่ทำการ request ไปยัง Activity ที่ 2 ส่วน resultCode นั้นจะเป็นรหัสที่ Activity ที่ 2 ตอบกับมาพร้อมกับค่าที่ใส่ใน putExtra

ซึ่งใน onActivityResult นั้นผมจะทำการแสดงข้อความที่ได้รับกลับมาจาก Activity ที่ 2 โดยเขียนโค้ดดังนี้

[sourcecode language=”java”]

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode){
case REQUEST_CODE:
if(resultCode == RESULT_CODE){
Toast.makeText(this, data.getExtras().getString(“response message”), Toast.LENGTH_LONG).show();
}
break;

}
super.onActivityResult(requestCode, resultCode, data);
}

[/sourcecode]

จากนั้นกลับไปที่ ResponseActivity โดยทำการสร้างปุ่มขึ้นมา 1 ปุ่มเพื่อเวลาคลิกจะได้ส่งค่ากลับไปให้ MainActivity นั้นเอง โดยไปสร้างปุ่มที่ไฟล์ response_activity.xml

android สร้างปุ่ม

โดยสร้างปุ่มดังรูปโดยกำหนด Text เป็นคำว่าอะไรก็ได้โดยที่นี้ผมกำหนดเป็น Response จะนั้นก็ทำการ แก้ไขไฟล์ xml ของไฟล์ response_activity.xml ว่าเวลาคลิกปุ่มให้ไปเรียก method ที่ชื่อว่า responseAction โดยมีโค้ดบางส่วนดังนี้

[sourcecode language=”xml”]

Leave a Reply

Your email address will not be published. Required fields are marked *