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()
withoutラムダの例:
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do something here
}
});
書き換え可能withlambda:
mButton.setOnClickListener((View v) -> {
// do something here
});
同じコードです。これは、多数のリスナーを使用する場合、またはIDEなしでコードを記述する場合に役立ちます。詳細については、 this を確認してください。
これがあなたの質問に答えることを願っています。
これと同じくらい簡単です:
button.setOnClickListener(view -> username = textView.getText());
古典的な新しいDialogInterface.OnClickListener()実装をラムダ式で置き換えるには、次のもので十分です。
builder.setPositiveButton("resourceId", ((DialogInterface dialog, int which) -> {
// do something here
}));
OnClickイベントパラメータを取得するだけです。