android - ¿Qué significa que un oyente puede ser reemplazado por lambda?
alertdialog android-alertdialog (3)
He implementado un
AlertDialog
con
AlertDialog
normales de clic negativo y positivo.
Cuando llamé al
new DialogInterface.OnClickListener()
me estaba mostrando una sugerencia que decía: El
Anonymous new DialogInterface.OnClickListener() can be replaced with lambda
.
Sé que no es un error o algo grande, pero ¿qué es exactamente esta sugerencia y qué puedo hacer al respecto?
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
Es tan simple como esto:
button.setOnClickListener(view -> username = textView.getText());
Para reemplazar la nueva implementación clásica de DialogInterface.OnClickListener () con la expresión lambda es suficiente con lo siguiente
builder.setPositiveButton("resourceId", ((DialogInterface dialog, int which) -> {
// do something here
}));
Solo está tomando los parámetros del evento onClick.
Significa que puede acortar su código.
Un ejemplo de
onClickListener()
sin
lambda:
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do something here
}
});
se puede reescribir con lambda:
mButton.setOnClickListener((View v) -> {
// do something here
});
Es el mismo código. Esto es útil cuando se usan muchos oyentes o cuando se escribe código sin un IDE. Para más información, mira this .
Espero que esto responda a su pregunta.