在Activity中使用菜單menu
阿新 • • 發佈:2019-02-26
ble apk android round lns 目錄 重寫 定義 light
因為總是忘,所以記下來!!!
使用菜單,首先要在res目錄下創建menu目錄,並創建相應的menu資源文件(以main為例),聲明命名空間:
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
app命名空間主要規定圖標顯示規則
<item android:id="@+id/test1" android:title="測試" android:orderInCategory="100" app:showAsAction="ifRoom"/> <item android:id="@+id/test2" android:title="@string/test" android:orderInCategory="100" app:showAsAction="never"/> <item android:id="@+id/test3" android:title="@string/test" android:icon="@drawable/ic_launcher_foreground" android:orderInCategory="100" app:showAsAction="always"/> <item android:id="@+id/test4" android:icon="@mipmap/ic_launcher" android:title="@string/test" android:orderInCategory="500" app:showAsAction="ifRoom"/>
必須要有id和title,orderIncategory表示排列順序,越大在菜單欄中越靠後,若同樣大小,則按照main文件中的書寫順序。
always表示顯示在菜單欄,never表示不在菜單欄中顯示,ifRoom表示如果空間允許,則顯示在菜單欄中。
如果有不在菜單欄中直接顯示的,則在菜單欄右上角多一個三點,裏面是未直接顯示的item,此時icon已經失去意義,只會顯示title。
在菜單欄中顯示時,如果沒有定義icon,則會直接顯示title,如果title為英文,則title會全部大寫,可以在主題中設置不要大寫。
接下來需要在Activity中重寫以下方法:
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()){ case R.id.test3: Toast.makeText(MainActivity.this, "3", Toast.LENGTH_SHORT).show(); break; case R.id.test4: Toast.makeText(MainActivity.this, "4", Toast.LENGTH_SHORT).show(); break; default: break; } return true; }
接下來運行,便可看到菜單欄了!
在Activity中使用菜單menu