Android DeveloperDeveloperFeatured

เขียนแอพ Android การเชื่อมต่อ SQLite กับ ListView เบื้องต้น

บทเรียนนี้เป็นการเริ่มต้นเขียนแอพพลิเคชันบนแพลตฟอร์ม Android สร้าง ListView ที่ดึงข้อมูลมาจากฐานข้อมูล SQLite แบบง่ายครับ มาเริ่มต้นพัฒนากันดีกว่า

สำหรับ SQlite นั้นเราสามารถไปดาวน์โหลดติดตั้งลงเครื่องเราได้ที่ http://www.sqlite.org ได้อย่างง่ายๆ พอดาวน์โหลดมาแล้วก็ Run Command Line ปรกติให้เกิดการ Activated ได้สบายๆ ประเด็นคือ Android Studio นั้นมีการทำงานของ SQLite ติดตัวมาอยู่แล้วดังนั้น เราสามารถพัฒนาแอพพลิเคชันของ Android ของเราร่วมกับ SQLite ได้ง่ายๆ ทันทีได้เลยเพียงแค่คุณต้องแม่นยำ Data Fields ของ ฐานข้อมูลเล็กน้อยเพราะมันต้องใช้จิตนาการประมาณหนึ่ง

SQLiteAndroid

กำหนดเงื่อนไขไว้ในใจดังนี้ ฐานข้อมูลชื่อ moviestore สร้างตารางชื่อว่า movies ครับ ประกอบไปด้วย Fields ดังนี้ title เป็น varchar, description เป็น textและ cover เป็น textเช่นกันครับ พร้อมกันนั้นให้เอา id เป็น primary key และเป็นเลขรันไปเรื่อยแบบ Autoincrement
ถ้าจะทำการ สร้าง ตารางเราต้อง Run คำสั่ง

ก็จะได้ตาราง movies เรียบร้อยใน SQLite ประเด็นคือ Android เราต้องสร้างมันผ่านคำสั่ง db.exeSQL ครับซึ่งเป็นหนึ่งใน Library ของ SQLiteOpenHelper() นั่นเอง

ดังนั้นเราต้องดำเนินการตามขั้นตอนดังนี้

เริ่มต้นพัฒนา

เปิด Android Studio ขึ้นมาครับทำการ New Project ใหม่ขึ้นมาชื่อว่า SQLiteTut เลือก Target เป็น Android Version 4.3 ก่อนให้เรียบร้อย
หน้า Layout ที่เราจะทำงานนั้นคือไฟล์ activity_main.xml ให้เราเลือกใช้ Large TextView และ ListView Widget มาใช้ออกแบบตามนี้ครับ ตั้งชื่อว่า listView

SQLiteAndroid3

ทำการ New Class ใหม่ใต้ Package ของโปรเจ็คเราตั้งชื่อว่า Database.java

SQLiteAndroid2
ทำการประกาศ Import ส่วนของ Header ตามนี้

ต่อจากนั้นให้เราสร้าง Class ใหม่ขึ้นมาดังนี้

ภาพรวม Code ของไฟล์ Database.java จะเป็นดังนี้

หากสังเกตุเราจะเห็น คำสั่ง db.exeSQL() ทำงานอยู่คือ CREATE TABLE และ INSERT TABLE ในบรรทัดนี้

และ บรรทัดนี้ครับ

เมื่อเสร็จแล้วเราจะได้ Class ของ Database ตัว SQLite เรามาใช้งานแล้ว ให้เราไปเปิดไฟล์ MainActivity.java ครับ

ทำการ Import ส่วนของ Header ดังนี้

เปลี่ยนส่วนของ extends ของคลาส MainActivity ให้อ้างอิงกับ Activity ครับ

เราจะทำการดึง ตัวแปรบางอย่างจาก Class Database.java ของเรามาใช้งานร่วมกับ MainActivity แล้วโดยการตั้งค่าตัวแปรต่อไปนี้

Public Class ที่ชื่อ MyDbHelper ของ Database นั้นถูกระบุไว้ผ่านตัวแปรชื่อ myDataHelper ในการอ้างถึง ตามหลักของ OOP แล้วใช้ Cursor คลาสที่เป็น ตัวชี้(ตามชื่อ)แถวของข้อมูลว่าเป็นแถวที่เท่าไรและดึงข้อมูลอะไรไปบ้าง สุดท้าย SQLiteDatabase เป็นเหมือนเมธอดให้ MainActivity เข้าใจคำสั่ง SQL ของ SQLite นั่นเองครับ

ใช้บทเรียนเก่าๆ ทำการ Final ตัว ListView ให้เรียบร้อยแล้วเขียนคำสั่งต่อไปนี้ครับ

Code จะเป็นดังนี้

เราจะใช้ SQL command ผ่าน myDBCursor ของเราเป็นคำสั่ง SELECT โดยดึงค่า Cont จาก Database.java เป็นหลักครับ ถ้าเอาจริงคำสั่งนี้ก็น่าจะเป็น

ทำการ Bind ลง ArrayAdapter แล้ว Join เข้ากับ ListView เหมือนปรกติที่เคยทำกันมา

อย่าลืม SQL.close ด้วยนะครับกันการเรียกข้อมูลหนักๆ

ดังนั้นภาพรวมของ Code ในไฟล์ MainActivity.java จะเป็นดังนี้

ทดสอบโดยการ Run ตัวแอพพลิเคชันของเรา

SQLite บน Android
SQLite บน Android

ถ้าต้องการนำ Detail จาก SQLite มาโชว์ด้วยก็ให้แก้ไข ส่วนของคำสั่ง while loop จากเดิม

ให้เป็น

แล้วก็ลองทดสอบดูครับ

SQLite บน Android
SQLite บน Android

บทเรียนนี้น่าจะช่วยให้หลายๆ คนที่เริ่มพัฒนาแอพพลิเคชันบน Android เริ่มจะมีความหวังกับการใช้งานฐานข้อมูลร่วมกับแอพพลิเคชันของเราแล้วใช่ไหมครับ เอาเป็นว่าฝึกฝนกันเยอะๆ ครับ

[pdfex]

Tags

Asst. Prof. Banyapon Poolsawas

อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์ ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)

Related Articles

Back to top button
Close
Close

Adblock Detected

เราตรวจพบว่าคุณใช้ Adblock บนบราวเซอร์ของคุณ,กรุณาปิดระบบ Adblock ก่อนเข้าอ่าน Content ของเรานะครับ, ถือว่าช่วยเหลือกัน