8 พ.ย. 2554

Android Mad Tutorials : การสร้าง Options Menu บน Android

 

Options Menu

บทความนี้จะกล่าวถึงการสร้าง Options Menu บน Android กันนะครับ อาจมีคนสงสัยว่า Options Menu มันคืออะไร? หน้าตาเป็นอย่างไร? และใช้ทำอะไร? ผมก็จะขอตอบทีละคำถามแบบ Mad Mad เลยนะครับ

Options Menu มันคืออะไร?
- มันก็คือ Menu ที่มันเด้งขึ้นมาตอนที่เราๆ ท่านๆ กดปุ่ม Menu บนเครื่อง Android นั่นหล่ะครับ

หน้าตาเป็นอย่างไร?
- อันนีี้ก็ตอบยากเพราะหน้าตาของ memu ก็ขึ้นอยู่กับว่าใช้ Android version อะไร และเรากำลังเปิด application อะไรอยู่ โดยปกติแล้วหน้าตาของมันก็จะเป็นจั่งซี่

ใช้ทำอะไร?
- ใช้แสดง option การทำงานเพิ่มเติมจากฟังก์ชันการทำงานปกติที่แสดงอยู่บนหน้าจอ เป็นการใช้พื้นที่จอแสดงผลที่มีอยู่อย่างจำกัดได้อย่างเต็มประสิทธิภาพ เพราะ Options Menu จะแสดงขึ้นมาก็ต่อเมื่อเรากดปุ่ม menu บนเครื่องเท่านั้น

มาลงมือกันเลยดีกว่า

สำหรับผู้ที่ไม่เคยสร้าง Android Application มาก่อนสามารถศึกษาการสร้างเบื้องต้นได้ที่ http://developer.android.com/resources/tutorials/hello-world.html

การสร้าง Options Menu นั้นทำไม่ยากครับง่ายเหมือนปลอกกล้วยเข้าปากช้าง (มันเกี่ยวกันมั้ย) ขั้นตอนการทำเป็นดังนี้ครับ

สร้าง menu resource 

ซึ่งเป็นการสร้างรูปแบบของ menu ไว้ใน xml

  1. ไปที่ Package Explorer คลิกขวาที่ res เลือก New > Folderimage

    Note : ถ้าใครยังไม่เห็นหน้า Package Explorer ให้กดปุ่ม Alt + Shift + Q พร้อมๆ กันแลัวปล่อยทั้งสามปุ่ม แล้วกด P  ^-^
  2. ที่ dialog  New Folder  ที่ช่อง Folder Name ใส่ “menu” แล้วคลิก Finishimage
  3. คลิกขวาที่ folder menu เลือก New > Android XML Fileimage
  4. ที่ dialog New Android XML File ที่ช่อง  File ให้ใส่ชื่อไฟล์ลงไปนะครับในที่นี้ผมใส่ “mad_menu.xml” จากนั้นคลิก Finishimage
  5. ให้เปิดไฟล์ “mad_menu.xml” ที่อยู่ใน res/menu ที่เราสร้างในขั้นตอนที่แล้ว โดยเลือกมุมมอง code editor โดยคลิกเลือกที่แท็บที่เป็นชื่อไฟล์ด้านล่างimage
  6. จากนั้นให้พิมพ์โค้ดเข้าไปดังนี้
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
    android:id="@+id/menu_item1"
    android:title="Item 1"
    android:icon="@android:drawable/ic_menu_call"/>
    <item
    android:id="@+id/menu_item2"
    android:title="Item 2"
    android:icon="@android:drawable/ic_menu_camera"/>

    </menu>
    android:id – คือ resource ID ที่ใช้ระบุ item นี้ตอนถูกคลิก
    android:title – คือ ชื่อของ item ที่จะปรากฎตอนแสดงผล
    android:icon – คือ รูปไอคอนที่จะปรากฎตอนแสดงผลซึ่งในโค้ดข้างบนเป็นการเรียกใช้ icon แบบ built-in ของ Android

    [การเข้าถึง resource จาก xml สามารถอ่านเพิ่มเติมได้ที่ http://developer.android.com/guide/topics/resources/accessing-resources.html#ResourcesFromXml]
  7. เปิดไฟล์ Options_MenuActivity.java ซึ่งเป็น Main Activity ให้พิมพ์โค้ดเข้าไปดังนี้
    package com.pinij.training.android;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuInflater;
    import android.view.MenuItem;
    import android.widget.Toast;

    public class Options_MenuActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.mad_menu, menu);
    return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    if(item.getItemId() == R.id.menu_item1){
    Toast.makeText(this, "Item 1 was clicked", Toast.LENGTH_LONG)
    .show();
    }
    return super.onOptionsItemSelected(item);
    }
    }
    มาดูโค้ดกันหน่อยดีกว่าว่าที่เขียนลงไปมันคืออะไร?
    (โค้ดที่เขียนลงไปคือบรรทัดที่ไฮไลทนะครับ ส่วน Method onCreate() ตัว IDE มันสร้างให้อยู่แล้วตอนที่สร้างโปรเจก)
    มาดูที่ onCreateOptionsMenu() กันก่อนนะครับซึ่ง method นี้เป็นการ Inflate menu resource (พูดให้เข้าใจง่ายๆเลยก็คือการ convert เมนูที่เราสร้างไว้ในไฟล์ mad_menu.xml ให้มันเป็น object นั่นเอง) โดยใช้ MenuInflater.inflate() 

    ต่อมาก็มาดูที่ onOptionsItemSelected()ซึ่ง method นี้เป็นการกำหนด action เมื่อ Item ของ Options Menu ถูกเลือกซึ่ง paramter item คือ object ของ item ที่ถูกเลือกซึ่งเราสามารถตรวจสอบว่า item ไหนกูกเลือกโดยการดึงเอา item ID มาตรวจสอบโดยใช้ getItemId()โดย action ที่ผมกำหนดนั้นคือถ้า item ที่ถูกเลือกมี ID เป็น menu_item1 ให้ Toast แสดงข้อความว่า “Item 1 was clicked” ส่วน menu_item2 ถ้าถูกคลิกแล้วให้ทำอะไรลองไปทำเป็นการบ้านดูนะครับ ถ้า Options Menu มี item จำนวนมากเราสามารถใช้ switch case ในการตรวจสอบว่า item ไหนถูกเลือกน่าจะสะดวกกว่าการใช้ if ครับ

เสร็จแล้วครับพี่น้อง เรามาดูผลลัพธ์ของโค้ดกันดีกว่า ให้ run appilication ขึ้นมาแล้วคลิกที่ปุ่ม menu บน device (ที่เห็นเป็นสีฟ้าๆ นั่นแหละครับ) ซึ่งจะแสดง Options Menu ขึ้นมาimage



จากนั้นลองคลิกที่ Item 1 จะเห็น pop up ขึ้นมาว่า “Item 1 was clicked”image



เป็นอันเสร็จสำหรับการสร้าง Options Menu แบบง่ายๆ นอกจาก Options Menu แล้วยังมี Menu รูปแบบอื่นๆ อีกเช่น Context Menu และ Sub Menu ซึ่งสามารถอ่านเพิ่มเติมได้ที่ http://developer.android.com/guide/topics/ui/menus.html


7 พ.ย. 2554

Android Mad Tutorials : การติดตั้ง Android SDK และ Eclipse IDE

บทความนี้จะกล่าวถึงการติดตั้งและตั้งค่าชุดเครื่องมือในการพัฒนา Android Application โดยผมจะแบ่งเป็นหัวข้อดังนี้

  • System Requirements
  • การติดตั้ง Java Development Kit
  • การติดตั้ง Android SDK
  • การติดตั้ง Eclipse IDE
  • การติดตั้งและตั้งค่า Android Plug-in for Eclipse (ADT)

     

    System Requirements

    Supported Operating Systems
  • Windows XP or later
  • Mac OS X 10.5.8 or later
  • Linux ดูรายละเอีดเพิ่มเติมได้ที่ http://developer.android.com/sdk/requirements.html

    การติดตั้ง Java Development Kit

    การพัฒนา Aandroid Application จะต้องติดตั้ง Java JDK 5 หรือ 6 ซึ่งสามารถดาวน์โหลดได้ที่ http://www.oracle.com/technetwork/java/javase/downloads/index.html ส่วนวิธีการติดตั้งสามารถอ่านจากคู่มือการติดตั้งเลยนะครับ

    การติดตั้ง Android SDK

    หลังจากที่ติดตั้ง Java JDK เรียบร้อยแล้วต่อมาเราก็ต้องติดตั้ง Android SDK สามารถดาวน์โหลดได้ที่ http://developer.android.com/sdk/index.html ซึ่งเจ้า Android SDK นี้ถือว่าเป็นหัวใจหลักสำหรับการพัฒนา Android Application เลยนะครับเพราะเป็นที่รวมของชุดเครื่องมือและ core library ที่ใช้ในการพัฒนา Android Application
    หลังจากที่ติดตั้งเสร็จแล้วให้ไปที่ Directory ที่ติดตั้ง Android SDK จะเห็นหน้าตาแบบรูปที่ 1.
    image
    รูปที่ 1. Android SDK
    ให้รัน SDK Manager ขึ้นมาเพื่อติดตั้งและอัพเดท SDK Component ซึ่งหลังจากเปิดขึ้นมาจะได้หน้าตาดังรูปที่ 2. นะครับซึ่งเป็น SDK Manager รุ่นล่าสุดที่ผมกำลังเขียนบทความนี้อยู่ครับ
    image
    รูปที่ 2. SDK Manager
    จากรูปที่ 1. สิ่งที่จำเป็นที่จะต้องติดตั้งก็คือในส่วนของ Tools และ Android API โดยในส่วนของ Tools ผมแนะนำว่าให้ติดตั้งให้ครบส่วน Android API นี่แล้วแต่ว่าเราจะพัฒนาโดยใช้ Android Version อะไรนะครับ แต่ผมแนะนำให้ติดตั้งตั้งแต่ Android 1.6 (API 4) จนถึง version ล่าสุดเลยครับแต่ก็ใช้เวลานานพอสมควรครับ ซึ่งในการติดตั้ง SDK Component นี้เราสามารถติดตั้งเพิ่มได้ในถายหลังนะครับ ถ้าใครเป็นประเภทวัยรุ่นใจร้อนก็สามารถข้ามขั้นตอนนี้ไปก่อนแล้วค่อยมาติดตั้งในภายหลังก็ได้ครับ
    รายละเอียดเพิ่มเติมในการติดตั้ง SDK Component สามารถอ่านได้ที่ http://developer.android.com/sdk/adding-components.html

    การติดตั้ง Eclipse IDE

    สำหรับ IDE ที่จะนำมาใช้เขียน Android Application นั้นผมแนะนำว่าให้ใช้ Eclipse เลยครับ เพราะด้วยความสามารถและ Plug-in จำนวนมากทำให้เจ้า Eclipse เป็น IDE ที่มีดีมากตัวนึงเลยและที่สำคัญ Google ยังทำ Android Development Tool (ADT) ซึ่งเป็น Plug-in ที่ใช้พัฒนา Android Application สำหรับ Eclipse อีกด้วยซึ่งทำให้ Eclipse เป็น IDE ที่ Android Developer เลือกใช้
    Eclipse IDE สามารถดาวน์โหลดได้ที่ http://www.eclipse.org/downloads โดยให้เลือก Eclipse IDE for Java EE Developers จากนั้นก็ติดตั้งตามระเบียบเลยครับ

    การติดตั้งและตั้งค่า Android Plug-in for Eclipse (ADT)

    การติดตั้ง Android Plug-in for Eclipse (ADT) มีขั้นตอนดังนี้
    1. ให้เปิด Eclipse IDE ขึ้นมาแล้วเลือก Help > Install New Software…image
    2. คลิกที่ปุ่ม Add ที่มุมบนขวามือ จะมี Dialog ขึ้นมา
    3. ที่ Dialog “Add Repository” ในช่อง Name: ให้ใส่ “ADT Plugin” ในช่อง Location: ให้ใส่ https://dl-ssl.google.com/android/eclipse/ แล้วเลือก OKimage
      สำหรับใครที่มีปัญหาไม่สามารถ Dolwnload ได้ให้ลองเปลี่ยนจาก https:// เป็น http:// ดูครับ
    4. ที่ Dialog “Available Software” ให้เลือกที่ check box หน้า Developer Tools แล้วคลิก Nextimage
    5. ที่หน้า Install Details จะแสดงรายการที่ต้องดาวน์โหลด จากนั้นคลิก Nextimage
    6. ที่หน้าถัดไปให้เลือก Accept Licesse Agreements จากนั้นคลิก Finishจากนั้นจะแสดง Progress Bar แสดงสถานะการติดตั้ง ถ้าหากมี dialog แสดงข้อความเตือนว่า authenticity or validity of the software can't be established ให้เลือกคลิก OK
    7. หลังจากที่ติดตั้งเสร็จแล้วให้ restart Eclipse
    หลังจากที่ติดตั้ง Android Plug-in for Eclipse (ADT) เสร็จแล้วต่อมาก็จะเป็นการตั้งค่าที่อยู่ของ Android SDK ให้กับ Eclipse กันครับซึ่งมีขั้นตอนดังนี้
    1. เลือก Window > Preferences...image
    2. เลือก Android ที่แถบทางซ้ายมือ
    3. ที่ SDK Location  คลิก Browse... แล้วเลือก SDK directory ที่เราได้ติดตั้งไปก่อนหน้านี้ครับimage
    4. คลิก Apply แล้วคลิก OK
      รายละเอียดเพิ่มเติมสำหรับการติดตั้งและตั้งค่า Android Plug-in for Eclipse (ADT) สามารถ
      อ่านได้ที่ http://developer.android.com/sdk/eclipse-adt.html
    เสร็จแล้วครับสำหรับการติดตั้งเครื่องมือสำหรับการพัฒนา Android Application ส่วนการลงมือสร้าง Application นั้นสามารถเริ่มต้นศึกษาได้ที่http://developer.android.com/resources/browser.html?tag=tutorial
    ขอให้ทุกท่านสนุกไปกับการพัฒนา Android Application กันนะครับ