การสร้าง Context Menu ใน Activity จะแสดงการเขียนคำสั่งใน Class Activity, การเขียนคำสั่งภายในไฟล์ XML Layout, และการประกาศ Activity ไว้ภายในไฟล์ AndroidManifest.xml
การเขียนคำสั่งภายใน Class Activity
โค้ด: เลือกทั้งหมด
package four.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 ( ) เป็น CallBack Method จะทำงานเมื่อผู้ใช้ได้คลิกที่ปุ่ม Menu บนเครื่องและ method onOptionsItemSelected ( ) เป็น 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) ซึ่งถูกใช้อ้างอิงใน 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
หน้าจอแสดงผลของ ตัวอย่างการสร้าง Context Menu ใน Activity
จากรูปแสดงหน้าจอของ MainActivity
จากรูปแสดงหน้าจอของ MainActivity เมื่อได้ Click ที่ปุ่ม Menu บน Device
จากรูปแสดงหน้าจอของ MainActivity หลังจากที่ได้เลือก Menu ที่แสดงขึ้นมานั้น
อ้างอิง :
http://www.softmelt.com/article.php?id=117
การสร้าง Context Menu ใน Activity จะแสดงการเขียนคำสั่งใน Class Activity, การเขียนคำสั่งภายในไฟล์ XML Layout, และการประกาศ Activity ไว้ภายในไฟล์ AndroidManifest.xml
[b]การเขียนคำสั่งภายใน Class Activity[/b]
[code]package four.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 );
}
}
[/code]
method onCreateOptionsMenu ( ) เป็น CallBack Method จะทำงานเมื่อผู้ใช้ได้คลิกที่ปุ่ม Menu บนเครื่องและ method onOptionsItemSelected ( ) เป็น CallBack Method จะทำงานเมื่อผู้ใช้ได้เลือก Menu ที่แสดงขึ้นมานั้น
[b]การเขียนคำสั่งภายในไฟล์ XML Layout[/b]
[code]<?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>
[/code]
element <TextView> มี id คือ label) ซึ่งถูกใช้อ้างอิงใน Class Activity
[b]การประกาศ Activity ไว้ภายในไฟล์ AndroidManifest.xml[/b]
[code]<?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>
[/code]
มีการประกาศ Activity ชื่อ MainActivity ที่อยู่ใน Package test.me.activity ไว้ภายในไฟล์ AndroidManifest.xml
[b]หน้าจอแสดงผลของ ตัวอย่างการสร้าง Context Menu ใน Activity[/b]
[img]http://snap.mindphp.com/index.php?view=2018Jan11_5a5713616a936[/img]
จากรูปแสดงหน้าจอของ MainActivity
[img]http://snap.mindphp.com/index.php?view=2018Jan11_5a57137776237[/img]
จากรูปแสดงหน้าจอของ MainActivity เมื่อได้ Click ที่ปุ่ม Menu บน Device
[img]http://snap.mindphp.com/index.php?view=2018Jan11_5a57138aad7ed[/img]
จากรูปแสดงหน้าจอของ MainActivity หลังจากที่ได้เลือก Menu ที่แสดงขึ้นมานั้น
อ้างอิง :
http://www.softmelt.com/article.php?id=117