20.11.2016 Views

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;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!