Lambda Expressions in Android with Example
Lambda expressions are a feature of Java 8 and later, which can be used in Android development to simplify code and improve readability. They are anonymous functions that can be passed around as values and can be used to create functional interfaces, which are interfaces that have a single abstract method. In Android, lambda expressions can be used to simplify event handling and make the code more readable.
For example, you can set an onClickListener for a button like this:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// do something
}
});
With lambda expressions, you can write the same thing like this:
button.setOnClickListener((view) -> {
// do something
});
Lambda expressions can also be used to simplify the creation of threads or to handle a callback, they can also be used in Android with functional interfaces such as Runnable, Callable, and more.
Syntax in Java and Kotlin
In Java, lambda expressions are used to create functional interfaces, which are interfaces that have a single abstract method. Here’s an example of using a lambda expression to create a functional interface in Java:
Runnable runnable = () -> {
// code to run
};
In Kotlin, lambda expressions can be used in a similar way, but they have a more concise syntax, and you don’t need to create a functional interface. Here’s an example of using a lambda expression in Kotlin:
val runnable = {
// code to run
}
Step-by-Step Implementation
Step 1: Create a New Project in Android Studio
To create a new project in Android Studio please refer to How to Create/Start a New Project in Android Studio. The code for that has been given in both Java and Kotlin Programming Language for Android.
Step 2: Working with the XML Files
Next, go to the activity_main.xml file, which represents the UI of the project. Below is the code for the activity_main.xml file. Comments are added inside the code to understand the code in more detail.
XML
<? xml version = "1.0" encoding = "utf-8" ?>
< LinearLayout
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:gravity = "center"
android:orientation = "vertical" >
< TextView
android:id = "@+id/textView"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "Click the Button Below"
android:textSize = "32sp" />
< Button
android:id = "@+id/button"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "Button" />
</ LinearLayout >
|
Step 3: Working with the MainActivity & ExampleIntentService File
Go to the MainActivity File and refer to the following code. Below is the code for the MainActivity File. Comments are added inside the code to understand the code in more detail.
Kotlin
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private lateinit var button: Button
private lateinit var textView: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super .onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button = findViewById(R.id.button)
textView = findViewById(R.id.textView)
button.setOnClickListener {
textView.text = "Button clicked"
}
}
}
|
Java
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private Button button;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button);
textView = findViewById(R.id.textView);
button.setOnClickListener(v -> {
textView.setText( "Button clicked" );
});
}
}
|
Output:
Last Updated :
06 Feb, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...