android: changing option menu items programmatically

前端 未结 12 1949
终归单人心
终归单人心 2020-12-02 09:33

Is it possible to change the option menu items programmatically? Can anyone provide me with an example please?

Also, I want to disable certain items, so that they do

12条回答
  •  甜味超标
    2020-12-02 10:04

    you can accomplish your task simply by implementing as below:

    private Menu menu;
    
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.drive_menu, menu);
        return true;
    }
    
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        this.menu = menu;
        return super.onPrepareOptionsMenu(menu);
    }
    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
    
        if (id == R.id.action_toggle_grid) {
            handleMenuOption(id);
            return true;
    
        } else if(id == R.id.action_toggle_list){
            handleMenuOption(id);
            return true;
        }
    
        return super.onOptionsItemSelected(item);
    }
    
    private void handleMenuOption(int id) {
        MenuItem item = menu.findItem(id);
        if (id == R.id.action_toggle_grid){
            item.setVisible(false);
            menu.findItem(R.id.action_toggle_list).setVisible(true);
        }else if (id == R.id.action_toggle_list){
            item.setVisible(false);
            menu.findItem(R.id.action_toggle_grid).setVisible(true);
        }
    }
    

提交回复
热议问题