Java は 1995年にUNIXベンダーとして有名でだったサン・マイクロシステムズによって公開されたプログラミング言語で、個人・企業問わずに世界中の多くの企業で使用される人気言語です。
JVM という Java の仮想マシン上で動くのが特徴で、「一度(プログラムを)書けば、どこでも実行できる」をコンセプトとしたプログラム言語として、発表当時は世界に大きなインパクトを与えました。Javaは多くの企業の社内システムで採用され、世界中で多くのシェアを占めるまでになり、 Android アプリの開発言語としても使用されます。
Android Studioで電卓アプリを作ってみよう
この記事では、Java の API がそのまま使える JVM 互換言語の Kotlinと Android Studioを使って簡単な電卓アプリを作る方法を紹介します。
Kotlinは、Javaの統合開発環境であるIntelliJ IDEAで有名なJetBrainsが開発したオブジェクト指向プログラミング言語です。
アプリの完成イメージ
今回作成する電卓アプリの完成イメージは次の通りです。
画面上部には計算式や計算結果を表示するディスプレイ部があり、その下には数字を入力するためのボタンと、足算、引算、掛算、割算を行う演算子のボタンがあるシンプルな電卓アプリです。
今回はAndroidアプリ開発のイメージを掴んでもらうのが主旨であるため、電卓機能は最小限にとどめ、整数の演算のみができるシンプルな作りにします。
アプリの画面デザインを作る
まず最初は、電卓アプリの画面デザインを作りましょう。
プロジェクトエクスプローラーから「activity_main.xml」をダブルクリックして開き、画面のデザイナを開きます。
TableLayoutを画面一杯に配置します。
TableLayoutの下に、TableRowを 6個(行)配置します。
TableRowの1行目には、電卓のディスプレイ部分となる、TextViewを配置します。
TableRowの2〜6行目には、電卓のボタンを次のイメージの通り配置します。
ボタンに設定するプロパティは次のとおりです。
- 「style」:@style/Widget.AppCompat.Button
- 「layout_width」:「0dip」
- 「layout_height」:「100dp」
- 「layout_weight」:「Cボタンは 3、00ボタンは 2、それ以外は 1を設定」
- 「text」:「上記イメージの通り」
- 「textSize」:「24sp」
電卓アプリのコードを書く
画面デザインの準備ができたら、ボタンが押された時の計算処理を行うコード部分を作成していきましょう。プロジェクトエクスプローラーから「MainActivity.kt」をダブルクリックして開き、エディタに表示します。
メソッドの構成
今回作る電卓アプリは、次の4つのメソッドで構成されます。
- display:画面上部のディスプレイ部に計算式や計算結果を表示する処理
- onClickNumber:数字ボタンがタップされた時に呼ばれるメソッド。タップされた数字を内部の変数に保存する。また、連続して数字がタップされた時は、タップした数値の数だけ桁数を増やす。
- onClickOperator:演算子のボタンがタップされた時に呼ばれるメソッド。タップされた演算子を内部の変数に保存し、計算式の右辺・左辺の入力を切り替える。
- onClickEqual:「=」ボタンがタップされた時に呼ばれるメソッド。入力された数値や演算子で計算を行い、計算結果を画面上部のディスプレイに表示する。
では、これらのメソッドのコードを書いていきましょう。
display メソッド
引数で指定された文字を、画面上部のディスプレイ部に表示する関数です。この後に作成するメソッドから計算式や計算結果を画面に表示する時に呼ばれます。
/**
* 計算式または計算結果を画面上部の TextViewに表示する処理
*/
private fun display(value: String) {
var display = findViewById<TextView>(R.id.display)
display.text = value.toString()
}
onClickNumberメソッド
数字ボタンがタップされた時の処理を行うメソッドです。
タップされる度に変数の値を10倍したもの対して加算することで、「1」→「2」→「4」の順に数字がタップされた時に、変数の値が「124」となるようにします。また、上で作成したdisplayメソッドを呼び出して入力された数字を画面に表示しています。
/**
* 数字がタップされた時の処理
*/
fun onClickNumber(v: View?) {
var btn = v as Button
var inputNumber = btn.text as String
if ("00".equals(inputNumber)) {
value1 = (value1 ?: 0) * 100
} else {
value1 = (value1 ?: 0) * 10
}
value1 = value1!! + inputNumber.toInt()
display(String.format("%s %s %s",
value2?.toString() ?: "",
operator,
value1.toString()))
}
onClickOperator メソッド
演算子のボタンがタップされた時の処理です。選択された演算子を記憶し、計算式の入力を左辺→右辺の数値を入力に切り替えます。
/**
* 演算子「+」「ー」「×」「÷」ががタップされた時の処理
*/
fun onClickOperator(v: View?) {
if (value1 != null) {
value2 = value1
value1 = null
operator = (v as Button).text.toString()
display(String.format("%s %s %s",
value2.toString(),
operator,
""))
}
}
onClickEqual メソッド
最後は「=」ボタンがタップされた時の計算処理です。右辺と左辺に入力された数字と演算子から計算を行い、結果を画面に表示します。
/**
* 「=」がタップされた時の処理
*/
fun onClickEqual(v: View?) {
if (value1 == null || value2 == null || operator == null) {
return
}
if ("+".equals(operator)) {
//足算
value1 = value2!! + value1!!
} else if ("−".equals(operator)) {
//引算
value1 = value2!! - value1!!
} else if ("×".equals(operator)) {
//乗算
value1 = value2!! * value1!!
} else if ("÷".equals(operator)) {
//除算
value1 = value2!! / value1!!
}
display(value1.toString())
value2 = null
operator = ""
}
まとめ
ここまでの流れで電卓アプリは完成です。
作成したアプリを実行するには、Android Studio のツールバーより、緑の再生マークのようなアイコンをクリックすると、エミュレーター上でアプリを実行できます。USBで Android端末をPCに接続すれば、実機でも確認が可能です。
【関連記事】
▶Javaで簡単なAndroidゲームアプリを開発(環境準備)
Kotlin 構文自体は Java と似ている部分もありますが、Java で冗長に書きがちになってしまう問題点を克服した互換性はあまりない独自構文をします。ただし、コンパイルされたコードはJava VM(仮想マシン)上で動作するため、Java の便利なAPI群や、数多くのライブラリなど、Java資産の多くを流用できるという特徴を持っています。