可以用 lambda 替换 Listener 是什么意思?
What does it mean that a Listener can be replaced with lambda?
我已经实现了一个 AlertDialog
,带有正常的负按钮点击侦听器和正按钮点击侦听器。
当我打电话给 new DialogInterface.OnClickListener()
时,它显示了一条建议:Anonymous new DialogInterface.OnClickListener() can be replaced with lambda
。我知道这不是错误或大问题,但这个建议到底是什么,我该怎么办?
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setPositiveButton("Text", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// do something here
}
});
Android Studio V1.2.1.1
compileSdkVersion 22
buildToolsVersion "22.0.0"
minSdkVersion 14
targetSdkVersion 22
这意味着您可以缩短代码。
onClickListener()
没有 lambda 的例子:
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do something here
}
});
可以用 lambda:
重写
mButton.setOnClickListener((View v) -> {
// do something here
});
代码相同。这在使用大量侦听器或编写没有 IDE 的代码时很有用。
有关详细信息,请查看 this。
希望这能回答您的问题。
就这么简单:
button.setOnClickListener(view -> username = textView.getText());
要用 lambda 表达式替换经典的新 DialogInterface.OnClickListener() 实现,使用以下内容就足够了
builder.setPositiveButton("resourceId", ((DialogInterface dialog, int which) -> {
// do something here
}));
它只是采用 onClick 事件参数。
我已经实现了一个 AlertDialog
,带有正常的负按钮点击侦听器和正按钮点击侦听器。
当我打电话给 new DialogInterface.OnClickListener()
时,它显示了一条建议:Anonymous new DialogInterface.OnClickListener() can be replaced with lambda
。我知道这不是错误或大问题,但这个建议到底是什么,我该怎么办?
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setPositiveButton("Text", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// do something here
}
});
Android Studio V1.2.1.1
compileSdkVersion 22
buildToolsVersion "22.0.0"
minSdkVersion 14
targetSdkVersion 22
这意味着您可以缩短代码。
onClickListener()
没有 lambda 的例子:
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do something here
}
});
可以用 lambda:
重写mButton.setOnClickListener((View v) -> {
// do something here
});
代码相同。这在使用大量侦听器或编写没有 IDE 的代码时很有用。 有关详细信息,请查看 this。
希望这能回答您的问题。
就这么简单:
button.setOnClickListener(view -> username = textView.getText());
要用 lambda 表达式替换经典的新 DialogInterface.OnClickListener() 实现,使用以下内容就足够了
builder.setPositiveButton("resourceId", ((DialogInterface dialog, int which) -> {
// do something here
}));
它只是采用 onClick 事件参数。