【背景】
想要在Android中添加Menu菜单。
目前已经有了menu的xml定义了:
/res/menu/activity_main.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | < item android:id = "@+id/menu_discard" android:icon = "@drawable/error_white" android:orderInCategory = "1" android:showAsAction = "ifRoom|withText" android:title = "@string/discard" /> < item android:id = "@+id/menu_send" android:icon = "@drawable/forward_white" android:orderInCategory = "2" android:showAsAction = "ifRoom|withText" android:title = "@string/send" /> </ menu > |
也可以在ActionBar中显示出来,但是点击菜单没反应。好像也点击不到。
现在希望可以使得menu正常可以点击,可以正常添加后续处理代码。
【解决过程】
1.参考:
4、从头学Android之Menu选项菜单 – 90worker – 博客频道 – CSDN.NET
折腾半天后,后来这么弄就可以了:
(1)xml文件:/res/menu/activity_main.xml
定义对应的menu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | < item android:id = "@+id/menu_discard" android:icon = "@drawable/error_white" android:orderInCategory = "1" android:showAsAction = "ifRoom|withText" android:title = "@string/discard" /> < item android:id = "@+id/menu_send" android:icon = "@drawable/forward_white" android:orderInCategory = "2" android:showAsAction = "ifRoom|withText" android:title = "@string/send" /> </ menu > |
(2)代码中这么写:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public class MainActivity extends FragmentActivity{ //... @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle item selection switch (item.getItemId()) { case R.id.menu_discard: //Toast.makeText(MainActivity.this, "Menu Discard cliked", Toast.LENGTH_SHORT).show(); return true; case R.id.menu_send: //Toast.makeText(MainActivity.this, "Menu Send cliked", Toast.LENGTH_SHORT).show(); return true; default: return super.onOptionsItemSelected(item); } } //... } |
界面显示的效果为:
【总结】
此处就是在之前已有的xml和代码的基础上,添加对应的onOptionsItemSelected,然后实现对应的处理代码,即可。
转载请注明:在路上 » 【已解决】Android添加Menu菜单