lambda表达式在Android开发中的实际应用

Posted zhangjin1120

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lambda表达式在Android开发中的实际应用相关的知识,希望对你有一定的参考价值。

目录

android中的实际使用

1. 抽象方法没有参数的接口:

Runnable

        runOnUiThread(new Runnable() 
            @Override
            public void run() 
                //todo 刷新账单列表
                Toast.makeText(MainActivity.this, "已更新", Toast.LENGTH_SHORT).show();
            
        );

//替换为lambda
        runOnUiThread(() -> 
            //todo 刷新账单列表
            Toast.makeText(MainActivity.this, "已更新", Toast.LENGTH_SHORT).show();
        );

2.抽象方法只有一个参数的接口:

View.OnClickListener

        btn.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View v) 
                //todo 支付宝支付
                Toast.makeText(MainActivity.this,"支付成功",Toast.LENGTH_SHORT).show();
            
        );

//替换为lambda
        btn.setOnClickListener(v -> 
            //todo 支付宝支付
            Toast.makeText(MainActivity.this,"支付成功",Toast.LENGTH_SHORT).show();
        );

MediaPlayer.OnPreparedListener

        mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() 
            @Override
            public void onPrepared(MediaPlayer mp) 
                //todo something
                mp.setLooping(false);
                mp.start();
            
        );

//替换为lambda
        mVideoView.setOnPreparedListener(mp -> 
            //todo something
            mp.setLooping(false);
            mp.start();
        );

3. 抽象方法有两个参数的接口


        btn.setOnTouchListener(new View.OnTouchListener() 
            @Override
            public boolean onTouch(View v, MotionEvent event) 
                if (event.getAction() == MotionEvent.ACTION_UP) 
                    //todo 做一些处理
                
                return false;
            
        );


//替换为lambda
        btn.setOnTouchListener((v, event) -> 
            if (event.getAction() == MotionEvent.ACTION_UP) 
                //todo 做一些处理
            
            return false;
        );

以上是关于lambda表达式在Android开发中的实际应用的主要内容,如果未能解决你的问题,请参考以下文章

Android学习探索之Java 8 在Android 开发中的应用

jdk1.8新特性之lambda表达式及在Android Studio中的使用举例

在eclipse中开发android 为啥不能用lambda表达式

Android中使用Lambda表达式高效开发

Android中使用Lambda表达式高效开发

Kotlin的Lambda表达式以及它们怎样简化Android开发(KAD 07)