ในบทความนี้ จะแสดงให้เห็นถึงตัวอย่างการสร้าง Context Menu ใน Activity โดยจะแสดงให้เห็นถึงการเขียนคำสั่งภายใน Class Activity, การเขียนคำสั่งภายในไฟล์ XML Layout, และการประกาศ Activity ไว้ภายในไฟล์ AndroidManifest.xml ดังนี้
การเขียนคำสั่งภายใน Class Activity
package test.me.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class MainActivity extends Activity
{
protected static int HOME = 900;
protected static int ABOUTUS = 910;
public void onCreate ( Bundle savedInstanceState )
{
super.onCreate ( savedInstanceState );
this.setContentView ( R.layout.activity_main );
}
public boolean onCreateOptionsMenu ( Menu menu )
{
MenuItem item1 = menu.add ( 0, MainActivity.HOME, Menu.NONE, "Home" );
item1.setIcon ( R.drawable.contentmenu_home );
MenuItem item2 = menu.add ( 0, MainActivity.ABOUTUS, Menu.NONE, "About US" );
item2.setIcon ( R.drawable.contentmenu_aboutus );
return super.onCreateOptionsMenu ( menu );
}
public boolean onOptionsItemSelected ( MenuItem item )
{
int itemID = item.getItemId ( );
if ( itemID == MainActivity.HOME )
{
TextView label = ( TextView ) this.findViewById ( R.id.label );
label.setText ( "You select Home menu." );
}
else if ( itemID == MainActivity.ABOUTUS )
{
TextView label = ( TextView ) this.findViewById ( R.id.label );
label.setText ( "You select About US menu." );
}
return super.onOptionsItemSelected ( item );
}
}
จากคำสั่งข้างต้น สามารถอธิบายได้ว่า method onCreateOptionsMenu ( ) ในบรรทัดที่ 22 เป็น CallBack Method ที่จะทำงานเมื่อผู้ใช้ได้คลิกที่ปุ่ม Menu บน Device และ method onOptionsItemSelected ( ) ในบรรทัดที่ 37 เป็น CallBack Method ที่จะทำงานเมื่อผู้ใช้ได้เลือก Menu ที่แสดงขึ้นมานั้น
การเขียนคำสั่งภายในไฟล์ XML Layout
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="- Please Select Content Menu -" />
</RelativeLayout>
จากคำสั่งข้างต้น สามารถอธิบายได้ว่า element <TextView> มี id คือ label (ประกาศไว้ในบรรทัดที่ 7) ซึ่งถูกใช้อ้างอิงใน Class Activity ข้างต้น
การประกาศ Activity ไว้ภายในไฟล์ AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application ... >
<activity android:name="test.me.activity.MainActivity" ... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
จากคำสั่งข้างต้น สามารถอธิบายได้ว่า มีการประกาศ Activity ชื่อ MainActivity ที่อยู่ใน Package test.me.activity ไว้ภายในไฟล์ AndroidManifest.xml ในบรรทัดที่ 4
หน้าจอแสดงผลของ ตัวอย่างการสร้าง Context Menu ใน Activity จากการเขียนคำสั่งข้างต้น
.png)
จากรูปแสดงหน้าจอของ MainActivity
.png)
จากรูปแสดงหน้าจอของ MainActivity เมื่อได้ Click ที่ปุ่ม Menu บน Device
.png)
จากรูปแสดงหน้าจอของ MainActivity หลังจากที่ได้เลือก Menu ที่แสดงขึ้นมานั้น