如何用Lamda表达式替换匿名OnClickListener?

时间:2019-01-03 07:25:15

标签: java android-studio lambda

我如何用Lamda表达式替换此OnClickListener?

    alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int i) {
            User user=new User(etnewname.getText().toString(),
                    etnewtelp.getText().toString(),
                    etnewemail.getText().toString(),
                    etnewusername.getText().toString(),
                    etnewpassword.getText().toString());

请参阅下面的Android Studio消息,我不太了解。

enter image description here

1 个答案:

答案 0 :(得分:1)

假设您可以将User对象的创建外包到它自己的方法createAndStoreUser()中,并且不会使用onClick(DialogInterface interface, int i)方法的两个参数,则可以将匿名类重写为:

alert.setPositiveButton("Yes", (di,i)-> createAndStoreUser());

您也可以直接在lambda表达式中定义具体的行为。但是,这不会带来很多好处:

alert.setPositiveButton("Yes", (di,i)-> { User user = new User(...); ... });