ANDROID APP
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
}<br />
46 บทที่ 2 การพัฒนาแอพเบื้องต้น: แอคทิวิตี้ และ อินเท็นต์<br />
}<br />
}<br />
});<br />
break;<br />
default: break;<br />
}<br />
กรรมวิธี: การส่งผ่านข้อมูลระหว่างแอคทิวิตี้<br />
ในบางครั้งเราอาจต้องการส่งข้อมูลไปยังแอคทิวิตี้ หรือบางครั้งต้องการส่งข้อมูลจากแอคทิวิตี้ที่<br />
ทำงานอยู่ กลับไปยังแอคทิวิตี้ที่เรียกใช้ ยกตัวอย่างเช่น ค่าคะแนนของเกมในตอนท้าย จะต้องถูกส่ง<br />
ผ่านไปยังหน้าจอค่าคะแนนสูงสุด ซึ่งวิธีการส่งค่าระหว่างแอคทิวิตี้นั้นมีหลายวิธีดังนี้<br />
m ประกาศตัวแปรในแอคทิวิตี้ที่ทำหน้าที่เรียก (ตัวอย่างเช่น int finalScore) และกำหนด<br />
ค่าในแอคทิวิตี้ที่ถูกเรียกใช้ (เช่น CallingActivity.finalScore=score)<br />
m กำหนดฟิลด์เพิ่มเติมลงในแอคทิวิตี้ (จะพูดถึงในหัวข้อนี้)<br />
m ใช้ Preference เพื่อเก็บข้อมูลที่จะเรียกใช้ในภายหลัง (จะพูดถึงในบทที่ 5)<br />
m ใช้ฐานข้อมูล SQLite เพื่อเก็บและส่งคืนข้อมูล (จะพูดถึงในบทที่ 9)<br />
ในส่วนนี้จะแสดงถึงการส่งผ่านข้อมูลจากแอคทิวิตี้หลักไปยังแอคทิวิตี้ที่ถูกเรียกใช้ ซึ่งใน<br />
แอคทิวิตี้นั้นอาจมีการเปลี่ยนแปลงข้อมูลและส่งกลับมายังแอคทิวิตี้หลัก<br />
ตัวแปร (ในที่นี้เป็นชนิดตัวเลขและข้อความ) จะถูกประกาศในแอคทิวิตี้ชื่อ StartScreen<br />
เมื่ออินเท็นต์ถูกสร้างขึ้นเพื่อเรียกใช้คลาส PlayGame ตัวแปรเหล่านี้จะถูกรวมไปไว้ในอินเท็นต์ด้วยการ<br />
ใช้เมธอด putExtra และเมื่อผลลัพธ์ถูกส่งกลับมาจากแอคทิวิตี้ ก็สามารถอ่านข้อมูลดังกล่าวได้ด้วย<br />
การใช้เมธอด getExtras<br />
ชุดคำสั่งที่ 2.16 src/com/cookbook/passing_data_activities/StartScreen.java<br />
package com.cookbook.passing_data_activities;<br />
import android.app.Activity;<br />
import android.content.Intent;<br />
import android.os.Bundle;<br />
import android.view.View;<br />
import android.widget.Button;<br />
import android.widget.TextView;<br />
public class StartScreen extends Activity {<br />
private static final int PLAY_GAME = 1010;