【背景】
想要在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菜单