我已经实现了一个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
这意味着您可以缩短代码。
没有lambda的onClickListener()
的一个例子:
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事件参数。