WEB开发网
开发学院手机开发Android 开发 Android学习之menu 阅读

Android学习之menu

 2010-05-31 14:13:00 来源:WEB开发网   
核心提示:4. }5.6. @Override7. public void onCreateContextMenu(ContextMenu menu, View v,8. ContextMenuInfo menuInfo) {9. super.onCreateContextMenu(menu, v, menuInfo);10.1

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;

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Android 学习 menu

编辑录入:coldstar [复制链接] [打 印]
赞助商链接