J'ai implémenté un AlertDialog
avec des écouteurs de clic négatif et positif normaux.
Quand j’ai appelé new DialogInterface.OnClickListener()
, il m’a montré une suggestion disant: Anonymous new DialogInterface.OnClickListener() can be replaced with lambda
. Je sais que ce n'est pas une erreur ou quelque chose de grave, mais en quoi consiste exactement cette suggestion et que puis-je faire à ce sujet?
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
Cela signifie que vous pouvez raccourcir votre code.
Un exemple de onClickListener()
sans lambda:
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do something here
}
});
peut être réécrit avec lambda:
mButton.setOnClickListener((View v) -> {
// do something here
});
C'est le même code. Ceci est utile lorsque vous utilisez beaucoup d'auditeurs ou lorsque vous écrivez du code sans IDE. Pour plus d'informations, consultez this .
J'espère que ça répond à ta question.
C'est aussi simple que cela:
button.setOnClickListener(view -> username = textView.getText());
Pour remplacer la nouvelle implémentation classique DialogInterface.OnClickListener () par une expression lambda, il suffit de:
builder.setPositiveButton("resourceId", ((DialogInterface dialog, int which) -> {
// do something here
}));
Il ne prend que les paramètres d'événement onClick.