【Android Studio】javaクラスからKotlinを呼ぶ

Android Studio
スポンサーリンク

こんにちは😀

今回は、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

最後に一言・・・

思っていた以上に、javaとKotlinの互換性が強く、迷うことも少なく連携できました。
Android Studioだからか共通のパッケージも使えるので、今回のトーストのように書き換える場合でも、少ない工数で対応できそうです。

今回はここまで🤚

では、また次回。

 

コメント

タイトルとURLをコピーしました