android开发之选项菜单,上下文菜单,子菜单的设置

xiaoxiao2021-02-28  85

设置选项菜单用到的是OnCreateOptionMenu()

上下文菜单是OnCreateContextMenu(),然后在你想要的控件上注册上下文菜单

子菜单则是使用SubMenu 利用 menu.addSubMenu, submenu.add();

比较简单,直接看代码吧

public class StartGameActivity extends Activity { static final int GAME_OPTION=1; static final int HERO_RECORD=2; private TextView tv_load; private Button btn_stargame,btn_setting; private ProgressBar pb_load; int progress = 0; Timer timer=new Timer(); TimerTask task = new TimerTask() { @Override public void run() { if (progress<100){ progress++; handler.sendEmptyMessage(0x111); }else { handler.sendEmptyMessage(0x222); task.cancel(); timer.cancel(); } } }; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.startgame); tv_load = (TextView)findViewById(R.id.tv_load); btn_stargame = (Button)findViewById(R.id.btn_startgame); pb_load = (ProgressBar)findViewById(R.id.pb_load); btn_setting = (Button)findViewById(R.id.btn_setting); btn_setting.setOnCreateContextMenuListener(this); btn_setting.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { view.showContextMenu(); } }); tv_load.setVisibility(View.GONE); pb_load.setVisibility(View.GONE); btn_stargame.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { tv_load.setVisibility(View.VISIBLE); pb_load.setVisibility(View.VISIBLE); timer.schedule(task,0,100); } }); } Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what){ case 0x111: pb_load.setProgress(progress); tv_load.setText("正在加载"); break; case 0x222: tv_load.setVisibility(View.GONE); pb_load.setVisibility(View.GONE); } } }; @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { menu.add(0,GAME_OPTION,1,"参数设置"); menu.add(0,HERO_RECORD,2,"英雄排行"); super.onCreateContextMenu(menu, v, menuInfo); } @Override public boolean onCreateOptionsMenu(Menu menu) { SubMenu subMenu = menu.addSubMenu("设置"); subMenu.add(0,GAME_OPTION,1,"参数设置"); subMenu.add(0,HERO_RECORD,2,"英雄排行"); // menu.add(0,GAME_OPTION,1,"参数设置"); // menu.add(0,HERO_RECORD,2,"英雄排行"); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case GAME_OPTION: break; case HERO_RECORD: break; } return super.onOptionsItemSelected(item); } }

转载请注明原文地址: https://www.6miu.com/read-23072.html

最新回复(0)