【背景】
想要在Android中添加Menu菜单。
目前已经有了menu的xml定义了:
/res/menu/activity_main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <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:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <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)代码中这么写:
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菜单