วันจันทร์ที่ 13 กรกฎาคม พ.ศ. 2558

SQLite



SQLite ใน Android Studio ♥

  ♥ SQLite คือ อะไร?
     ►SQLite เป็น Database ขนาดเล็ก ที่ทำงานบนระบบต่างๆ ของสมาร์ทโฟน ซึ่ง Android นี้ก็ใช้ SQLite เป็น Database ของแต่ละ Application เช่นกัน  โดย Application หนึ่ง ก็จะมีฐานข้อมูลของแต่ละ Application ซึ่งไม่ได้ใช้งานร่วมกัน

    ► ในบทความนี้จะยกตัวอย่างการสร้างตารางเก็บข้อมูล และ การเพิ่มข้อมูล



♥รูปที่ 1♥
►เป็นคำสั่งในการสร้าง Database ขึ้นมา
     ►บรรทัดที่ 30◄ ทำการสร้าง database ที่มีคุณสมบัติ Class File (ใน Class File เราสามารถใช้คำสั่ง getApplicationContext และทำการตรวจสอบว่าใน Application ของเรามี Database "MyDB.db" หรือไม่)
     ►บรรทัดที่ 31◄ ถ้ามี Database จะทำเงื่อนไขในบรรทัดนี้ แต่ถ้าไม่จะข้ามไปยังเงื่อนไขบรรทัดที่ 35
     ►บรรทัดที่ 32, 45◄ จะแสดงข้องความที่ Log Cat ในที่นี้จะมีการเรียกใช้อยู่ 2 ที่ แล้วแต่กรณีว่าตรงตามเงื่อนไขได้ เพราะถูกเขียนไว้อยู่ภายใต้เงื่อนไข if else
     ►บรรทัดที่ 40◄ Create Table ชื่อ Student โดยในตารางจะมีค่าคอมลัมภ์ 4 คอลัมภ์
          ► คอลัมภ์ที่ 1 ชื่อว่า _id เก็บค่าแบบ Integer กำหนดให้เป็น PK แล้วมีการเพิ่มตัวเลขแบบอัตโนมัติเข้าไป
          ► คอลัมภ์ที่ 2 ชื่อว่า stdID เก็บค่าแบบ Text
          ► คอลัมภ์ที่ 3 ชื่อว่า stdName เก็บค่าแบบ Text
          ► คอลัมภ์ที่ 4 ชื่อว่า stdGPA เก็บค่าแบบ Real (เป็นทศนิยม)



♥รูปที่ 2♥
►หลังจากที่ทำการสร้าง Database ขึ้นมาแล้ว
     ►บรรทัดที่ 50-53◄ เป็นการอ้างถึง EditText และ Button
     ►บรรทัดที่ 55-75◄ เป็นการเรียกใช้ฟังก์ชันเมื่อทำการกดปุ่ม Button
            ►บรรทัดที่ 58-60◄ กำหนดให้ ตัวแปรชนิด String เก็บค่าของ EditText ที่ถูกอ้างถึง
            ►บรรทัดที่ 62-66◄ เป็นการ Insert Database ตามข้อมูลที่เราได้กรอกไว้ใน EditText
            ►บรรทัดที่ 67-68◄ เป็นการ Toast ข้อความให้เราเห็นค่าข้อมูลที่เราได้ทำการใส่ไว้ใน EditText
            ►บรรทัดที่ 70-73◄ จากนั้นก็ทำการเคลียร์ค่าข้อมูล



♥รูปที่ 3♥
►ในหน้านี้จะเป็นหน้าของ activity_my_sqlite.xml ซึงสามารถออกแบบได้ตามความต้องการของผู้ใช้
     ► 1. คลิกที่ไอคอนดังรูป ►Android Device Monitor◄


♥รูปที่ 4♥
►จากนั้นไปที่ File Explorer ►เลือก Data ► และเลือก Data ►และตามด้วยแพ็คเก็ตตามชื่อที่ผู้ใช้ตั้งขึ้นคือ Company Domain ของผู้ใช้ จะพบว่า database นั้นยังไม่ถูกสร้างขึ้น หรือไม่มีนั่นเอง


♥รูปที่ 5♥
►จากนั้นทำการ Run Program ขึ้นมา จะแสดงหน้า Activity ที่เราสร้างขึ้น


♥รูปที่ 6♥
►จากนั้นไปที่ File Explorer ►เลือก Data ► และเลือก Data ►และตามด้วยแพ็คเก็ตตามชื่อที่ผู้ใช้ตั้งขึ้นคือ Company Domain ของผู้ใช้ จะพบว่า database ถูกสร้างขึ้นมาแล้ว จากรูป Code ในรูปที่ 1 ที่เป็นการ Create Database 


♥รูปที่ 7♥
►จากนั้นจะทำการ save MuDB.db ออกมาเพื่อดูข้อมูล


♥รูปที่ 8♥
►จากนั้นจะทำการ เลือกไฟล์ที่ต้องการจัดเก็บ


♥รูปที่ 9♥
►และทำการเปิด Program SqliteBrowser ขึ้นมา กรณีที่ผู้ใช้ไม่ได้ทำการติดตั้งจะต้องทำการติดตั้งโปรแกรมเสียก่อน



♥รูปที่ 10♥
►จากนั้นก็ทำการ Open Database ดังรูป


♥รูปที่ 11♥
►เลือกไฟล์ที่ได้บันทึกลงไป


♥รูปที่ 12♥
►จะพบว่าตาราง Database ถูก Create ขึ้นมาเป็นที่เรียบร้อยแล้ว แต่ยังไม่มีข้อมูลที่ถูกจัดเก็บในฐานข้อมูลเลย



♥รูปที่ 13♥
►ในขึ้นตอนนี้ เราจะทำการ Create ข้อมูล เพื่อจัดเก็บลงบนฐานข้อมูล


♥รูปที่ 14♥
►เมื่อทำการกดปุ่ม INSERT แล้ว จะมีการ Toast ข้อความตามที่เราได้กรอกข้อมูลลงไป 


♥รูปที่ 15♥
►ทำการขั้นตอนเดิม ก็คือการ Save Database เพื่อดูข้อมูล


♥รูปที่ 16♥


♥รูปที่ 17♥
►จากนั้นปิด Database เดิมเสียก่อน โดยไปที่ File►Close Database


♥รูปที่ 18♥
►จากนั้นเปิด MyDB  ขึ้นมา

♥รูปที่ 19♥
►ก็จะพบข้อมูลที่เราได้กรอกลงไปในหน้า Activity เป็นที่เรียบร้อย




วันศุกร์ที่ 3 กรกฎาคม พ.ศ. 2558

การ Toast & Dialog



การ Toast and Dialog ใน Android Studio ♥

  ♥ Toast คือ อะไร?
     ►Toast คือ การแสดง Pop up ที่แสดงข้อความบางอย่างให้ผู้ใช้ได้รู้โดยมันจะแสดงขึ้นมาและปิดตัวเองลงไปภายในระยะเวลาที่กำหนด


♥ รูปที่ 1♥
►จากรูปที่ 1 เขียนอธิบาย Code ได้ ดังนี้
    ►บรรทัดที่ 20 ◄ ทำการอ้างอิงปุ่ม Button ที่มี ID "button"
    ►บรรทัดที่ 21-23◄ ทำการกำหนด Event ให้กับ Button คือ "setOnClickListenner" โดยถ้าปุ่มถูกกดคำสั่งตั้งแต่บรรทัดที่ 21-27 จะทำงาน
    ►บรรทัดที่ 24 ◄ กำหนดให้แสดงข้อความ Toast โดยใช้คำสั่ง Toast.makeText  แล้วให้ส่งพารามิเตอร์ไป 3 ตัว คือ ตัวแรกเพื่อบอกว่าจะแสดงอยู่ที่ Activity ใด ตำแต่งที่ 2 ส่งค่าข้อความที่จะแสดง ตำแหน่งที่ 3 บอกระยะเวลาของการแสดง Toast ว่าจะแสดงระยะเวลาเท่าใด โดย Android Studio จะทำการกำหนดมาให้ 2 แบบ คือ แบบ Toast.LENGTH_LONG และ แบบ Toast.LENGTH_SHORT 
    ►บรรทัดที่ 25◄ เรียกใช้คำสั่ง show เพื่อแสดง Toast



♥ รูปที่ 2►หลังจากที่ทำการ Run Program♥


♥ รูปที่ 3►หลังจากที่ทำการ คลิกปุ่ม SHOW TOAST♥


♥ รูปที่ 4♥
►จากรูปที่ 4 เป็นการกำหนดตำแหน่งให้ Toast แสดง ตามความต้องการของผู้ใช้ โดยจะทำการเพิ่มโค้ดเข้าไป ดูจากรูปที่ 4 จะเห็นว่าได้ทำการเพิ่ม บรรทัดที่ 25 เข้าไป
    ►บรรทัดที่ 25◄ โดยจะใช้คำสั่ง setGravity ของ Object Toast ซึ่งจะต้องส่งพารามิเตอร์ไป 3 ตัว คือ ตัวแรกระบุว่า ให้ Toast แสดงขึ้นมาบนตำแหน่งใดในหน้าจอ จากตัวอย่างได้กำหนดให้อยู่ตรงกลางหน้าจอ เมื่อเทียบกับแนวนอนและแนวตั้ง พารามิเตอร์ตัวที่ 2 ทำการกำหนดระยะห่างของ Toast เมื่อเทียบกับหน้าจอทางด้าน ซ้ายและขวา พารามิเตอร์ตัวที่ 3 ทำการกำหนดระยะห่างของ Toast เมื่อเทียบกับหน้าจอทางด้าน บนและล่าง



♥ รูปที่ 5►แสดงผลลัพธ์จาก Code รูปที่ 4♥



  ♥ Dialog คือ อะไร?
  


♥ ตัวอย่าง Dialog ► ซึ่งมันจะประกอบไปด้วยพื้นที่ 3 ส่วนหลัก คือ Title, Content, Button ตามที่เห็น ดังรูปข้างบน เราเรียกว่า Dialog



♥ รูปที่ 6♥

►จากรูปที่ 6 คือตัวอย่าง Code การสร้าง Dialog อธิบายได้ ดังนี้
    ►บรรทัดที่ 22 ◄ ทำการใช้ Class AlertDialog.Builder ในการสร้าง Dialog ขึ้นมา โดยเริ่มจากการสร้าง Object จาก Class AlertDialog.Builder ก่อน จากนั้นจะทำการตั้งค่า เพื่อแสดงข้อมูลในส่วนต่างๆ ของ Dialog
    ►บรรทัดที่ 23◄ คำสั่ง setTitle เป็นการกำหนดข้อความที่จะแสดงบนส่วนของ Title
    ►บรรทัดที่ 24◄ คำสั่ง setMessage เป็นการกำหนดข้อความที่จะแสดงบนส่วนของ Content
    ►บรรทัดที่ 25◄ คำสั่ง setPositiveButton เป็นการกำหนดปุ่ม บนพื้นที่ส่วนของ Button และ คำสั่ง OnClickListener
    ►บรรทัดที่ 34◄ คำสั่ง show เพื่อแสดง Dialog


♥ รูปที่ 7 ►ผลลัพธ์จากรูปที่ 6♥


♥ รูปที่ 8 ♥

♥การเพิ่มปุ่มให้มากกว่า 1 ปุ่ม โดยเพิ่ม Code เข้ามา และ แก้ไข Code บางส่วนที่มี แบ่งออกเป็น 2 ส่วน

   ►ส่วนที่ 1◄
      ►บรรทัดที่ 21◄ ทำการสร้าง Object ที่ชื่อว่า onClickDialogButton สร้างจาก Class DialogInterface.OnClickListener 
      ►บรรทัดที่ 23◄ ทำ Override มา 1 เมธธอด คือ เมธธอด onClick จะทำงานเมื่อมีการคลิกที่ปุ่ม Dialog โดยจะเห็นได้ว่ามีพารามิเตอร์อยู่ 2 ตัว  พารามิเตอร์ตำแหน่งที่สอง จะเป็นตัวแปรประเภท Int ซึ่งเอาไว้ตรวจสอบว่าปุ่มที่ถูกคลิกคือ ปุ่มใด
      ►บรรทัดที่ 25-27◄ ทำการตรวจสอบว่าปุ่มที่ถูกคลิกคือปุ่มใด ก็ให้ทำงานในฟังก์ชันนั้น

   ►ส่วนที่ 2◄
      ►บรรทัดที่ 33-35◄ เราสามารถเพิ่มปุ่มไปได้สูงสุด 3 ปุ่ม โดยใช้คำสั่ง setPositiveButton, setNegativeButton, setNeutralButton โดยทั้ง 3 จะทำงานเหมือนกันโดยให้ส่งพารามิเตอร์ไป 2 ตัว โดยพารามิเตอร์ตัวแรกให้กำหนดค่าข้อความที่ถูกแสดงบนปุ่ม และพารามิเตอร์ตัวที่ 2 ให้ส่งค่า Object ที่ส้รางจาก Class DialogInterface.OnClickListener เพื่อใช้ในการดังฟังเหตุการณ์เมื่อมีการ Click ที่ปุ่มนั้นๆ



♥ รูปที่ 9 ►ผลลัพธ์จากรูปที่ 8 ♥


♥ รูปที่ 10 ♥

♥การแสดงรายการข้อมูลไว้บนพื้นที่ส่วนของ Content แบ่งออกเป็น 2 ส่วนคือ
   ►ส่วนที่ 1◄
      ►บรรทัดที่ 21◄ ประกาศตัวแปรชนิด String ซึ่งเป็นอาร์เรย์ 1 มิติ

   ►ส่วนที่ 2◄
      ►บรรทัดที่ 24◄ โดยใช้คำสั่งว่า setItem และทำการส่งพารามิเตอร์ไป 2 ตัว โดยพารามิเตอร์ตำแหน่งที่ 1 โดยให้ส่งค่าที่ใช้แสดงข้อมูล และพรารามิเตอร์ตำแหน่งที่ 2 ให้ส่งค่า Object ที่ส้รางจาก Class DialogInterface.OnClickListener  ลงไป และทำการ Override เมธธอด ที่ชื่อว่า onClick มันจะทำงานเมื่อมีการคลิกที่รายการข้อมูล


♥ รูปที่ 11 ►ผลลัพธ์จากรูปที่ 10 ♥


Activity ► Android Studio



Activity คือไร

  ♥ สำหรับหลายคนคงอาจจะสงสัยว่า Activity คืออะไร...?
ดิฉันคิดว่าหลายๆคน คงจะคุ้นหน้าคุ้นตากับ Application บนสมาร์ทโฟนกันพอสมควรไม่ว่าจะเป็น OS หรือ Android นั้น เวลาเราทำการเปิดหน้าจอแต่ละหน้าจอนั้น ก็คือแต่ละ "Activity" ที่นักพัฒนาทำการเขียนขึ้นมา

  ♥ การสร้่างหน้าจอเริ่มต้น จะมี 2 ส่วนที่เกี่ยวข้อง

     1. Activity Class

         ♥ ใช้สำหรับควบคุมการทำงานของโปรแกรม
         ♥ ถูกเขียนโดยใช้ภาษา Java


รูปที่ 1►Activity Class ► อยู่ที่ java ► th.ac.mut.it.pj_test1 (packet ที่เราสร้างขึ้น)►MainActivity

♥ จะเห็นได้ว่า Activity Class นี้ จะถูกเขียนด้วยโครงสร้างภาษา Java ส่วนมาก Activity Class ที่ถูกสร้างขึ้นจะทำการ extends จาก Class Activity เสมอ


รูปที่ 2►คำสั่งในการอ้างถึง Layout File ใน  Activity Class

♥ การอ้างถึง Layout File ใน  Activity Class จะใช้คำสั่ง setContenView โดยให้ส่งค่าตัวแปรที่อ้างไปถึง Layout File ที่ต้องการ ซึง R.layout.activity_main จะอ้างไปถึง Resource(res) ► Layout ► และ File ชื่อ activity_main.xml เพราะทุกครั้งที่เราสร้างไฟล์ในโฟล์เดอร์ Layout  Android จะทำการ generate ตัวแปรให้โดยอัตโนมัติเพื่อให้เราใช้ตัวแปรนั้นอ้างถึง Layout File 


     2. Layout File

         ♥ ใช้สำหรับออกแบบ User Interface
         ♥ ถูกเขียนโดยโครงสร้างภาษา XML


รูปที่ 3►Layout File ► อยู่ที่ res ► Layout ►activity_main.xml


รูปที่ 4 ►activity_main.xml ► เขียนด้วยภาษา XML

เรียนรู้การเริ่มต้นสร้างโปรเจ็กต์



เริ่มต้นสร้างโปรเจ็กต์

  ♥ ขั้นตอนแรกในการพัฒนาแอพพลิเคชันทุกครั้งก็คือ การสร้างโปรเจ็กต์ ซึ่งสามารถทำได้ตามขั้นตอนดังนี้

            ♥ 1. เลือก Start
            ♥ 2. เลือก All Programs
            ♥ 3. เลือก Android Studio
         

          ♥ 4. รอโปรแกรมที่กำลังเรียกใช้


          ♥ 5. ทำการ Create Program โดยการเลือกที่  Start a new Android Studio project



        ♥ 6. ทำการตั้งชื่อ Project
        ♥ 7. ตั้งชื่อ Company Domain
        ♥ 8. Folder ที่เก็บ File
        ♥ 9. แล้วทำการกด Next


        ♥ 10. เลือก Phone and Tablet แล้วตามด้วย Version ที่ต้องการ
        ♥ 11. แล้วทำการกด Next

       
        ♥ 12. เลือก Activity ที่ต้องการ
        ♥ 13. แล้วทำการกด Next




        ♥ 14. ทำการตั้งชื่อ Activity
        ♥ 15. แล้วทำการกด Finish



        ♥ 16. Program จะทำการแสดง Project ที่เราทำการสร้างขึ้นมา




        ♥ 17. แถบเครื่องมือ Palette สามารถออกแบบได้ ตาม Style ของผู้ที่ต้องการใช้งาน


        ♥ 18. ทำการกดที่ปุ่ม Icon Genymotion Device Manager



        ♥ 19. ทำการเลือก Version ตามต้องการ
        ♥ 20. แล้วกดที่ปุ่ม Start


        ♥ 21. จะแสดงหน้าจอดังนี้



        ♥ 22. กดปุ่ม ► เพื่อ Run Program


        ♥ 23. กดปุ่ม OK



        ♥ 24. เสร็จแล้วเราก็เปิด Genymotion ขึ้นมา จะพบว่า Program จะถูก Runขึ้นมา 


        ♥ 25. ทดสอบการพิมพ์ E-mail และ Password สามารถพิมพ์ได้ แต่ปุ่ม Button ไม่สามารถกด หรือลิงค์ไปยัง Page อื่นได้ เพราะไม่ได้มีการกำหนดค่า หรือ ใส่การทำงานใดๆ ลงไปนั่นเอง