[Android] เริ่มต้นเขียน Android Application

ต่อจากนี้ Android Studio จะเป็นเครื่องมือหลักในการพัฒนา Android นะครับ (ใครที่ติดอยู่ที่ Eclipse ย้ายได้แล้ว) Google เค้าพัฒนาต่อยอดจาก IntelliJ IDEA ให้มันเฉพาะทางกว่าเดิม และผู้เขียนก็ชอบ Theme สีดำ (สาระ สุดๆ  แหะๆ)

อ้างอิงบทความก่อนหน้า รู้จักโครงสร้าง 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 มันจะค่อยๆมาตอนเราเล่นไปเรื่อยๆครับ

Facebook Comment

Popular post of 7 days

[Android] เปิดเครื่องไม่ได้ โลโก้ค้าง (Boot Loop)

ลืมรหัสปลดล็อค Android เข้าเครื่องไม่ได้ มีทางออกครับ

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding