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

mwngjboj  于 2022-12-17  发布在  Java
关注(0)|答案(1)|浏览(177)

如何用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的消息如下所示,我不太明白。

muk1a3rh

muk1a3rh1#

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

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

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

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

相关问题