【发布时间】:2021-09-04 08:08:03
【问题描述】:
这是 MY ANDROID STUDIO 中的代码......它所做的一切,当您单击工具栏中的项目时,它会创建小吃店。 我的问题是,为什么我的 udemy 老师使用“item -> {}”作为参数,而 .setOnMenuItemClickListener() 中的人使用 new OnMenuItemClickListener() ???
代码:
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;
});
}
【问题讨论】:
-
只是表示被点击的菜单项
-
它是一个 lambda 函数。它简化了您的代码。看看这个链接,例如:stackoverflow.com/questions/57320007/…
-
Lambda 表达式。
item作为参数(名称)传递到{ }内部的函数中。这用于代替一个类,通常是一个匿名类,匹配函数setOnMenuItemClickListener()的参数