
第七課:建立option menu
本文介紹如何為activity加上option menu。Option menu是android提供menu的其中之中。 使用也很容易,教早前也提及android支持以xml去定義你的meun,然後把它吹脹成menu的object。這大大減少了建立 menu的時間,而且不用更改java,十分方便。
首先,新增一個名為OptionMenuTest的android project。在res中加入一個名為menu的新folder,在此加入一個mymenu.xml的文件。 把以下的xml寫入該文件。
上面定義了兩個menu item,miAbout和miCallMe。你也可以設定text和icon。完成後打開OptionMenuTestActivity,筆者希望把這menu加到這個activity。 在這activity override onCreateOptionsMenu()和onOptionsItemSelected()。在onCreateOptionsMenu()中,我們以menuInflater 去吹脹這個xml的menu object。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mymenu, menu);
return true;
}
在onOptionsItemSelected()中,用傳來的MenuItem的getItemId()去找出用戶在按那個MenuItem。跟據id,我們就可以作出不同的反應。 在miAbout的case中加入showAbout(),在miCallMe的case中加入callMe()。 showAbout()和callMe()都是你將要自己定義的function,你可以運用前兩課學到的implicit intent及explict intent,跳去其他activity。 在youtube中或source中便可找到相關的coding。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//
switch (item.getItemId())
{
case R.id.miAbout:
showAbout();
return true;
case R.id.miCallMe:
callMe();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
我們還要做一個AboutDetail的activity,它的xml layout。由於前一課已學過了,這裡就不再說明。Youtube已記錄了全部步驟。最後把所有的activity和permission 加到AndroidManifest.xml中。測試時,你須按下menu按鈕,option menu才會顯示在下方。
Download: Source code