工具栏监听器的正确使用方法

Correct way to use Toolbar Listener

您好,我找不到问题的答案。我正在使用工具栏,所以我在 OnCreate 中创建它是这样的:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("Toolbar");
toolbar.inflateMenu(R.menu.menu_examen);
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
    @Override
    public boolean onMenuItemClick(MenuItem item) {
        return false;
    }
});

但我注意到,如果我使用很多选项,我的 OnCreate 会变得非常混乱。我喜欢秩序,所以我用 OnCreate 创建了这个监听器:

Toolbar.OnMenuItemClickListener toolbarListener = new Toolbar.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            switch (item.getItemId()){
                case R.id.opcion1:
                    Toast.makeText(ExamenActivity.this,"Opcion 1",Toast.LENGTH_SHORT).show();
                    break;
                default:
            }
            return false;
        }
    };

然后在我的 OnCreate 工具栏上是:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
//setSupportActionBar(toolbar);
toolbar.setTitle("Quitar esta wea");
toolbar.inflateMenu(R.menu.menu_examen);
toolbar.setOnMenuItemClickListener(toolbarListener);

这是有效的,但这是正确的吗?这个有名字吗谢谢你。我知道这是一个简单的问题,但我想做对

是的,更好,你可以做得更好,不需要额外的变量,如

class YourActivity extends Activity implements Toolbar.OnMenuItemClickListener{

onCreate(){
      ...
      Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
     //setSupportActionBar(toolbar);
      toolbar.setTitle("Quitar esta wea");
      toolbar.inflateMenu(R.menu.menu_examen);
      toolbar.setOnMenuItemClickListener(this);
      ...
}

@Override
public boolean onMenuItemClick(MenuItem item) {
            switch (item.getItemId()){
                case R.id.opcion1:
                    Toast.makeText(ExamenActivity.this,"Opcion 1",Toast.LENGTH_SHORT).show();
                    break;
                default:
            }
            return false;
        }
}