เขียนโปรแกรม android การใช้งาน Navigating Up
Navigating Up ก็คือปุ่ม back กลับไป Activity หลักโดยการกดปุ่ม Icon app นั้นเอง ถ้ายังงงก็สามารถดูรูปด้านล่างได้ครับ
ซึ่งเจ้า Navigating Up นี้ได้เริ่มมีใน Android 4.1 (API level 16) หรือ Android Jelly Bean นั้นเองถ้าหากอยากให้รองรับในอุปกรณ์รุ่นเก่าๆนั้นต้องทำการกำหนด <meta-data> พิเศษขึ้นมาดังนี้
[sourcecode language=”xml”]
...
...
[/sourcecode]เอาละนั้นเป็นวิธีเพื่อทำให้รุ่นเก่ารองรับแต่ตัวอย่างที่ผมจะเขียนในครั้งนี้จะไม่ได้ทำเพื่อรองรับอะไรแค่จะแสดงวิธีการใช้งานเบื้องต้นเท่านั้น โดยในรอบนี้ผมได้เปลี่ยนไปใช้ Android Studio แทน Eclipse แล้วนะครับ เอาละเรามาเริ่มกันเลยดีกว่า
ผมทำการ new project โดยตั้งชื่อว่า NavigatorUp และกำหนดรายละเอียดค่าต่างๆดังรูปครับโดยไม่มีการแก้ไข Activity หลักซึ่งจะทำให้ Acitivity หลักคือ MainActivity หลังจากสร้าง project ก็ทำการสร้าง Activity อีกอันตั้งชื่อว่า ActivityDetail.java เพื่อให้เรียกไปมาระหว่าง Activity
สังเกตว่าการจัดเรียง folder ใน android studio นั้นค่อยข้างจะมีหลายชั้นมากว่า Eclipse โดย source code activity ที่สร้่างขึ้นจะอยู่ใน app -> src -> main -> java -> package name ที่เราตั้งขึ้น
เมื่อสร้าง ActivityDetail แล้วก็ให้ทำการสร้างปุ่มใน MainActivity เพื่อเรียกแสดง ActivityDetail โดยให้ไปเพิ่มปุ่มที่ไฟล์ xml ของ MainActivity โดยเพิ่มปุ่มดังนี้
[sourcecode language="xml"]
[/sourcecode]
โดยไฟล์ xml นั้นจะอยู่ใน app\src\main\res\layout จากโค้ด xml จะเห็นว่ามีการกำหนด onClick เป็น onButtonClick ซึ่งจะเป็นชื่อ method ที่จะสร้างขึ้นที่ MainActivity เพื่อเรียกแสดง ActivityDetail
จะเห็นว่า Android Studio นั้นมีการ render แสดงผลตัวอย่าง xml ได้ดีกว่า Eclipse
ต่อจากนั้นก็ไปที่ MainActivity เพื่อทำการสร้าง method onButtonClick โดยมีโค้ดดังนี้
[sourcecode language="java"]
public void onButtonClick(View view)
{
Intent intent = new Intent(this, ActivityDetail.class);
startActivity(intent);
}[/sourcecode]
ต่อจากนั้นไปที่ไฟล์ ActivityDetail.java แล้วทำการเพิ่มโค้ดใน method onCreate ซึ่งจะได้โค้ดแบบนี้ครับ
[sourcecode language="java"]
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity_detail);ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}[/sourcecode]
แค่เพิ่มโค้ด 2 บรรทัดก็ได้ละเรียกว่าไม่มีอะไรซับซ้อนเลย เสร็จแล้วก็ลองรันใน emulator ดูครับก็ได้ดังรูป
จะเห็นว่า Navigating Up ขึ้นที่ Icon ของ App แล้วแต่ลองคลิกดูกับไม่เกิดอะไรขึ้น นั้นเป็นเพราะเราไม่ได้กำหนด android:parentActivityName นั้นเอง
โดยเราจะต้องกำหนดในไฟล์ AndroidManifest.xml ซึ่งใน Android Studio นั้นจะอยู่ที่ app\src\main ซึ่งการกำหนด parentActivityName ดังนี้ครับ
[sourcecode language="xml"]
[/sourcecode]
ซึ่งอย่างที่บอกในตอนแรกว่า tag parentActivityName กับ Navigating Up นั้นเริ่มมีให้ใช้งานใน Android 4.1 เพราะฉะนั้นถ้าจะให้รองรับ version เก่าจะต้องทำการเพิ่ม meta tag ตามที่ได้บอกไว้ตอนต้น เมื่อเรากำหนด parentActivityName แล้วลองรัน App ใน emalator อีกครั้งเมื่อกดปุ่มเรียก ActivityDetail แล้วกด Navigating Up มันจะทำการเรียก parentActivityName ที่เรากำหนดให้ Activity นั้นครับ ก็เป็นอันเสร็จการใช้งาน Navigating Up ครับ
ผมก็ขอจบบทความไว้เพียงแค่นี้นะครับติดตามอ่านบทความผมในครั้งต่อไปด้วยนะครับ