使用方法:
首先在 res 目錄下新建一個(gè) menu文件夾,在文件夾下再建一個(gè)名叫 main 的菜單文件。
main.xml代碼:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/add_item"
android:title="添加" />
<item
android:id="@+id/remove_item"
android:title="刪除" />
<item
android:id="@+id/query_item"
android:title="查看" />
</menu>
在 Activity 中重寫(xiě)onCreateOptionsMenu()
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main,menu);
return true;
}
通過(guò) getMenuInflater() 方法能夠得到MenuInflater對(duì)象,再調(diào)用它的 inflate() 方法就可以給當(dāng)前活動(dòng)創(chuàng)建菜單了。inflate() 方法接受兩個(gè)參數(shù),第一個(gè)參數(shù)用于指定我們通過(guò)哪一個(gè)資源文件來(lái)創(chuàng)建菜單,這里傳入的是R.menu.main。第二個(gè)參數(shù)用于指定我們的菜單項(xiàng)將添加到哪一個(gè) Meau 對(duì)象中,這里直接使用onCreateOptionsMenu() 方法中傳入 menu 參數(shù)。然后給這個(gè)方法返回 true,表示允許創(chuàng)建的菜單顯示出來(lái),如果返回了 false,創(chuàng)建的菜單將無(wú)法顯示。
下面這個(gè)是點(diǎn)擊事件的響應(yīng):
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.add_item:
Toast.makeText(this,"添加按鈕",Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this,"刪除按鈕",Toast.LENGTH_SHORT).show();
break;
case R.id.query_item:
Toast.makeText(this,"查詢按鈕",Toast.LENGTH_SHORT).show();
break;
}
return true;
}
在onOptionsItemSelected() 方法中,通過(guò)調(diào)用item.getItemId()來(lái)判斷我們的點(diǎn)擊的是哪一個(gè)菜單項(xiàng),然后給每個(gè)菜單項(xiàng)加入自己的邏輯處理,重新運(yùn)行程序,你會(huì)發(fā)現(xiàn)每個(gè)標(biāo)題欄的右側(cè)多了一個(gè)三點(diǎn)的符號(hào),這個(gè)就是菜單項(xiàng)了。
結(jié)果展示:
