
前書き
先日の記事で初心者向けに、
を紹介しました。
とても基本的な内容となっています。
今回の記事では、少しレベルアップして、
ラムダ式でonClick()を実装する方法を紹介します。

1.Android Studio でラムダ式を有効にする
ラムダ式は、Java 8 から追加した新しい文法となっています。
Android Studio ではデフォルトで Java 7 を採用しているため、
設定をしておかないとラムダ式の文法を認識してくれません。
こちらの手順を踏んで、お使いのAndroid Studioでラムダ式を有効にしましょう。
1. [File]タブから[Project Structure]を選択

2.[Modules]タブで[Source Compatibility]と[Target Compatibility]を[1.8 (Java 8)]に設定

[Apply]で適用した後[OK]
これでAndroid Studio のJavaバージョンが Java 8 になり、ラムダ式を使えるようなりました。
2.ラムダ式の基礎
ラムダ式は、匿名クラスの実装から、記載を省略したものになります。
一般的な構文はこのようになります。
(引数1, 引数2, ...) -> {
//具体的な処理
}
引数が一つの場合は、引数ブロックの()を省略することもできます。
引数の型は、Javaが推測してくれるため記載しなくて問題ありません。
引数ブロックと処理ブロックを結ぶ -> は、弓矢に似ている形からアロー演算子と呼びます。

3.ラムダ式でonClick()を実装したサンプルコード
では実際に、onClick()をラムダ式で実装したサンプルコードを見てみましょう。
元となっているコードは
この記事の、2.匿名クラスを作成する です。
是非見比べてみてください。
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = findViewById(R.id.test_text);
Button testButton = findViewById(R.id.test_button);
testButton.setOnClickListener(view -> {
Log.d(TAG, "Test button pressed!");
mTextView.setText("TestButtonのクリック検知!");
});
}
}
引数は view です。引数ブロックの()は引数が view 一つのため省略します。
view の型であるViewはJavaによって推測されるため省略します。
アロー演算子 -> の後の処理ブロック{}で具体的な処理を記載します。
もちろんこの処理ブロック{}内で、引数 view を使った view.getId() などの実装もできます。
シンプルな匿名クラスの実装が、ラムダ式を使用することによりさらにシンプルになりました。
こちらのコードを実装し、ボタンを押下すると下の写真のような結果となります。

まとめ
ラムダ式の基本的な実装方法は理解できたでしょうか?
見慣れない構文に最初はびっくりすると思いますが、基礎を抑えておくと、
一つずつ分解して、何をやっているか理解できるようになります。
メリット:シンプルな上級者っぽいコードを書ける
デメリット:初心者にはとっつきづらい
両面を含んでいるので、
使い所を見極めて、モダンなラムダ式を実装していきましょう!
ご精読ありがとうございました!!
ピンバック: 【EditText】Androidでの入力受付方法 シンプルな実装例付き | Memento Mori Blog