android – 在子菜单中添加onclick?

前端之家收集整理的这篇文章主要介绍了android – 在子菜单中添加onclick?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的菜单有一个onclick功能,但我无法弄清楚我的子菜单的ID是什么,以便我可以告诉子菜单用户点击它时该做什么.我使用下面的代码以编程方式创建了子菜单.所以,如果有人能够向我解释我如何知道子菜单的每个项目的id是什么我会非常感激.
  1. @Override
  2. public boolean onCreateOptionsMenu(Menu menu)
  3. {
  4. MenuInflater inflater = getMenuInflater();
  5. inflater.inflate(R.menu.mainmenu,menu);
  6.  
  7. SubMenu submenu = menu.addSubMenu(0,Menu.FIRST,Menu.NONE,"Preferences");
  8. submenu.add(0,"Get Last 5 Packets");
  9. submenu.add(0,"Get Last 10 Packets");
  10. submenu.add(0,"Get Last 20 Packets");
  11. inflater.inflate(R.menu.mainmenu,submenu);
  12.  
  13. return true;
  14. }
  15.  
  16. @Override
  17. public boolean onOptionsItemSelected(MenuItem item)
  18. {
  19. // Handle item selection
  20. switch (item.getItemId())
  21. {
  22. case R.id.viewKML:
  23. viewKML();
  24. return true;
  25. default:
  26. return super.onOptionsItemSelected(item);
  27. }
  28. }

解决方法

当你添加
  1. submenu.add(0,"Get Last 5 Packets");

add()方法的参数排列是Android Menu Add Method

  1. public abstract MenuItem add (int groupId,int itemId,int order,CharSequence title)

itemId Unique item ID. Use NONE if you do not need a unique ID.

菜单项的ID.它应该是独一无二的.就像你说15,20,21.这个id就像android:id =“@ id / 15”.当您要检查单击哪个项目时将使用

例如

  1. @Override
  2. public boolean onCreateOptionsMenu(Menu menu) {
  3. MenuInflater inflater = getMenuInflater();
  4. inflater.inflate(R.menu.main_activity_menu,menu);
  5.  
  6. SubMenu submenu = menu.addSubMenu(0,"Preferences");
  7. submenu.add(0,10,"Get Last 5 Packets");
  8. submenu.add(0,15,"Get Last 10 Packets");
  9. submenu.add(0,"Get Last 20 Packets");
  10. inflater.inflate(R.menu.main_activity_menu,submenu);
  11.  
  12. return true;
  13. }
  14.  
  15. @Override
  16. public boolean onOptionsItemSelected(MenuItem item) {
  17. // Handle item selection
  18. switch (item.getItemId()) {
  19. case 10:
  20. Toast.makeText(LoginPageActivity.this,"Now "+item.getItemId(),Toast.LENGTH_SHORT).show();
  21. return true;
  22. case 15:
  23. Toast.makeText(LoginPageActivity.this,"Now = "+item.getItemId(),Toast.LENGTH_SHORT).show();
  24. return true;
  25. case 20:
  26. Toast.makeText(LoginPageActivity.this,"Now == "+item.getItemId(),Toast.LENGTH_SHORT).show();
  27. return true;
  28. default:
  29. return super.onOptionsItemSelected(item);
  30. }
  31. }

猜你在找的Android相关文章