本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。
原书购买地址 http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/
现在,我们就可以去修改上一节中的项目了。这样,在用户按menu键的时候就会弹出选项菜单了。
1. 使用上一节中的工程,在MenusActivity.java中添加一些代码。
public class MenusActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button) findViewById(R.id.button1); btn.setOnCreateContextMenuListener(this); } @Override public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, view, menuInfo); CreateMenu(menu); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); CreateMenu(menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { return MenuChoice(item); } private void CreateMenu(Menu menu) { ...... } private boolean MenuChoice(MenuItem item) { ...... } }2. 按F11在模拟器上面进行测试。下面展示弹出的选项菜单。选择一个菜单项或者使用快捷键(A到D)。注意一点,1到3的菜单项并没有显示出图标,尽管我们在代码中设置了图标。
3. 如果在AndroidManifest.xml中设置最小的SDK属性为10(包括10)以下,然后重新加载程序,就会看见图标了。如果菜单项过多的话,就会显示一个More的选项。
<uses-sdk android:minSdkVersion="10" />
想要在Activity中显示出选项菜单,那么就需要实现两个方法:onCreateOptionsMenu()和onOptionsItemSelected()。前者在MENU键被点击的时候被触发,后者在一个菜单项被点击的时候被触发。
注意选项菜单在不同android版本中的样式。