[Android] เริ่มต้นเขียน Android Application
ต่อจากนี้ Android Studio จะเป็นเครื่องมือหลักในการพัฒนา Android นะครับ (ใครที่ติดอยู่ที่ Eclipse ย้ายได้แล้ว) Google เค้าพัฒนาต่อยอดจาก IntelliJ IDEA ให้มันเฉพาะทางกว่าเดิม และผู้เขียนก็ชอบ Theme สีดำ (สาระ สุดๆ แหะๆ)
อ้างอิงบทความก่อนหน้า รู้จักโครงสร้าง Android Project ถึงแม้บทความนี้จะใช้ Eclipse (เชยอ่ะ) แต่ก็ใกล้เคียงกันอยู่นะ สิ่งที่เพิ่มเติมขึ้นมาคือ
และอื่นๆ
โหลดแล้วติดตั้งแล้ว ก็จัดการเปิดต่อด้วย New Project..
กดที่ source เพื่อสลับไปเขียน layout ด้วย xml (เปิด preview ไปด้วยก็ได้)
ไปที่ Class MainActivity ที่ Android Studio สร้างไว้ให้เราแล้ว สามารถศึกษาข้อมูลเพิ่มเติมได้จาก Starting an Activity
เราสามารถดึง xml layout มาที่ Activity Class (ในกรณีนี้ผมวาด
เราสามารถจัดการ event โดยใช้ Annonymous Class หรือ implements event ขึ้นอยู่กับการใช้งาน
1. แบบ Annonymous Class
2. แบบ Implements Event
แทนที่จะใช้ Annonymous Class เราจะใช้
ตัวอย่างนี้เป็นการจัดการ OnClick ของ
อ้างอิงบทความก่อนหน้า รู้จักโครงสร้าง Android Project ถึงแม้บทความนี้จะใช้ Eclipse (เชยอ่ะ) แต่ก็ใกล้เคียงกันอยู่นะ สิ่งที่เพิ่มเติมขึ้นมาคือ
- Gradle
- Gradle ทำให้เรา sync library จาก jCenter / maven ได้โดยตรง ไม่ต้องโหลด jar + add to project เอง
- version สามารถ config จากไฟล์ Gradle ได้เลย (ไม่ต้องเข้าไปที่ AndroidManifest.xml แล้ว)
- โหลดตัวเดียวจบ Download Android Studio จะรวมเอา SDK และ Emulator เวอร์ชั่นปัจจุบันมาให้ด้วยเลย install ทีเดียวก็ได้มาครบ ไม่ต้องโหลด plugins หรือ sdk แยกให้ยุ่งยากอีก
- มุมมองที่ออกแบบมาสำหรับ Android Project โดยเฉพาะ
และอื่นๆ
โหลดแล้วติดตั้งแล้ว ก็จัดการเปิดต่อด้วย New Project..
แนะนำให้เลือก Empty Activity ก่อน
เริ่มออกแบบหน้าจอด้วย layout.xml
หน้าจอนี้เราสามารถ Drag & Drop component ต่างๆ ได้เลย หรือถ้าใครถนัด Coding ก็เลือกเป็น tab source ก็สามารถเขียนด้วย xml ได้ พอทำไปเรื่อยๆ จะพบว่าลากๆวางๆเนี่ยมันไม่ค่อยโอเคสำหรับ developer อย่างเราๆ ใช่ไหมครัช tag_facesกดที่ source เพื่อสลับไปเขียน layout ด้วย xml (เปิด preview ไปด้วยก็ได้)
ไปที่ Class MainActivity ที่ Android Studio สร้างไว้ให้เราแล้ว สามารถศึกษาข้อมูลเพิ่มเติมได้จาก Starting an Activity
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
เชื่อมต่อ layout ไปยัง Class [ได้เวลาเขียนโค้ดแล้ว]
ใน Android, Class ที่ inherit มาจาก Activity จะมีคุณสมบัติที่สามารถเชื่อมกับ layout ได้ โดยหน้าจอที่เราวาดไปก่อนหน้านี้ จะถูกเอา id มาสร้างรวมกันไว้เป็น R.java ครับเราสามารถดึง xml layout มาที่ Activity Class (ในกรณีนี้ผมวาด
Button
ใน layout ผู้อ่านใช้ component ไหนก็เรียกใช้ Class ให้ตรงกันนะครับ)Button btnLogin = (Button) findViewById(R.id.login);
เราสามารถจัดการ event โดยใช้ Annonymous Class หรือ implements event ขึ้นอยู่กับการใช้งาน
1. แบบ Annonymous Class
btnLogin.setOnClickListener(() -> { Log.d("MainActivity","login button clicked"); });
2. แบบ Implements Event
public class MainActivity extends Activity implements View.OnClickListener
แทนที่จะใช้ Annonymous Class เราจะใช้
this
แทนbtnLogin.setOnClickListener(this);
@Override public void onClick(View v) { switch(v.getId) { case R.id.login: Log.d("MainActivity","login button clicked"); break; } }
ตัวอย่างนี้เป็นการจัดการ OnClick ของ
Button
ซึ่งก็ยังมีอีกหลาย component หลาย event มันจะค่อยๆมาตอนเราเล่นไปเรื่อยๆครับ