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

时间:2018-01-25 04:16:52

标签: android android-toolbar

您好我无法找到问题的答案。我正在使用工具栏,所以我在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变得非常mesy。我喜欢订单,所以我用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);

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

1 个答案:

答案 0 :(得分:0)

更好的是,如果没有额外的变量,你可以做得更好,如

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;
        }
}