Kevin Chris Kevin Chris - 19 days ago 7
Android Question

Listener can be replaced with lambda

I have implemented an

AlertDialog
with normal negative and positive button click listeners.
When I called
new DialogInterface.OnClickListener()
it was showing me a suggestion saying:
Anonymous new DialogInterface.OnClickListener() can be replaced with lambda
. I know it's not an error or something big but what exactly is this suggestion and what can I do about it? Little help would be appreciated!

EDIT

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setPositiveButton("Text", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
.......
............
}


Android Studio V1.2.1.1
compileSdkVersion 22
buildToolsVersion "22.0.0"
minSdkVersion 14
targetSdkVersion 22

Answer

It means that you can shorten up your code:

example of onClickListener() without lambda :

mButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // do something here
    }
});

can be rewritten with lambda:

mButton.setOnClickListener((View v) -> {
    // do something here
});

It's the same code. This is usefull when using alot of listeners or when writing code without an IDE. for more info check this

Hope this answeres your question.

Comments