こんにちは😀
今回は、Kotlinを勉強してた時からやってみたかったjavaとKotlinの連動をしてみます。
Kotlinはjavaクラスに追加できる
Kotlinの特徴として、javaの機能に追加できるというのがあります。
仮にjavaで組んだシステムがあっても、後からKotlinのコードで追加ができ、Kotlinを開発に採用してもコード全てをKotlinに総入れ替えする必要はありません。
なので、今回は以前javaで作成したアプリにKotlinのコードを追加してみます。
トーストの処理
復習になりますが、以前画面にトースト(短時間出力される吹き出しのようなもの)を作成しました。
以下は、javaでの書き方です。
private void makeToast(View layout, int g, int x, int y){
// トーストの設定
Toast toast = Toast.makeText(this, “”, Toast.LENGTH_LONG);
toast.setGravity(g, x, y);
toast.setView(layout);
toast.show();
}
呼び出しはこうなります。
makeToast(layout, 17,400, 100);
この部分をKotlinで作成し、javaのクラスから呼び出してみましょう。
Kotlinでトースト作成
Kotlinと言っても、javaとはさほど変わりません。
1行目と4行目が、Kotlinの書き方になっているくらいです。
あと、Kotlinには文末の「;」は必要ありません。
「Toast」のパッケージ(android.widget.Toast)も、javaで使用したのと同じのが使えます。
fun makeToast(con: Context, layout: View, g:Int, x:Int, y:Int){
// トーストの設定(長めに表示)
val toast = Toast.makeText(con,””,Toast.LENGTH_LONG)
// 位置調整
toast.setGravity(g, x, y)
// 吹き出しのレイアウトをセット
toast.setView(layout)
// トーストを表示
toast.show()
}
javaからの呼び出しはこうしました。
javaクラスのmakeToast関数から、KotlinクラスのmakeToastを呼び出します。
private void makeToast(View layout, int g, int x, int y){
// Kotlinの関数を呼び出す
TryKotlinTestKt.makeToast(this,layout, 17,300, 500);
}
実行してみましょう。トーストが出力されています。
最後に一言・・・
思っていた以上に、javaとKotlinの互換性が強く、迷うことも少なく連携できました。
Android Studioだからか共通のパッケージも使えるので、今回のトーストのように書き換える場合でも、少ない工数で対応できそうです。
今回はここまで🤚
では、また次回。
コメント