在 .setOnMenuItemClickListener(item -> {})

问题描述

这是我的 ANDROID STUdio 中的代码......它所做的一切,当您单击工具栏中的项目时,它会创建小吃栏。 我的问题是,当 .setonMenuItemClickListener() 中的人使用 new OnMenuItemClickListener() 时,为什么我的 udemy 老师使用“item -> {}”作为参数???

代码

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    rootLayout = findViewById(R.id.myLayout);

    Toolbar toolbar = findViewById(R.id.toolbar);
    toolbar.setTitle("Basic Components");
    toolbar.inflateMenu(R.menu.menu_main);
    toolbar.setonMenuItemClickListener(item -> {

        switch (item.getItemId()) {
            case R.id.simple_snackbar:
                showSimpleSnackBar();
                break;
            case R.id.snackbar_action_callback:
                showSnackBarWithACtionCallback();
                break;
            case R.id.custom_snackbar:
                showSnackBarWithColoredText();
                break;
        }
        return false;
    });
}

解决方法

它是一个 Lamda 表达式项 -> 意味着...

toolbar.setOnMenuItemClickListener(item -> {})

可以写成:

toolbar.setOnMenuItemClickListener(new 
MenuItem.OnMenuItemClickListener(){});

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...