Android学习之menu
2010-05-31 14:13:00 来源:WEB开发网4. }
5.
6. @Override
7. public void onCreateContextMenu(ContextMenu menu, View v,
8. ContextMenuInfo menuInfo) {
9. super.onCreateContextMenu(menu, v, menuInfo);
10.
11. getMenuInflater().inflate(R.menu.menu1, menu);
12. }
public void onCreate(Bundle savedInstanceState) { ... registerForContextMenu(editText); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); getMenuInflater().inflate(R.menu.menu1, menu); }
由于这是contextMenu,所以可以看到即使xml定义里面的item1.seticon了,但还是没有显示出来的,即那语句是无效的!
另外,要明确的是,要显示radio,需要用group,而group里面的item设置了checked = true即选中。而 checkable和checked的区别,一开始我是很困惑的,但写了代码并运行后,明白它们的区别了: checkable=true 表示这个item是checkbox,checked 则表示是否选中。所以对于checkbox item,最好先写 checkable="true",然后再写checked。
Java实现
用Java来实现以上的效果图,就比较麻烦些:
view plaincopy to clipboardprint?
1. private static final int MENU_GROUPITEM1 = Menu.FIRST + 8;
2. private static final int MENU_GROUPITEM2 = Menu.FIRST + 9;
3. private static final int MENU_ITEM1 = Menu.FIRST + 10;
4.
5. public void onCreate(Bundle savedInstanceState) {
6. ...
7. registerForContextMenu(findViewById(R.id.edittext));
8. }
9.
10. @Override
11. public void onCreateContextMenu(ContextMenu menu, View v,
12. ContextMenuInfo menuInfo) {
13. super.onCreateContextMenu(menu, v, menuInfo);
14.
15. menu.add(1,MENU_ITEM1,Menu.NONE, "Item 1").setCheckable(true).setChecked(false);
16.
17. // Group ID
18. int groupId = 0;
更多精彩
赞助商链接