JavaでAndroidアプリ開発日記 電卓

電卓の仕組みを学ぶことによってアプリの仕組みを学ぶ

レイアウト

TextView(Main)で計算結果を表示
TextView(Sub)で計算過程を表示
TableLayoutとTableRowを組み合わせ、その中にButtonを配置 Layout weightをそれぞれ1にしておくとButtonの大きさや列の高さが等しくなる

動作

電卓で計算する場合、1つ目の数値を入力し演算子を入力し、2つ目の数値を入力して=か演算子を押すと計算が実行される
よって2つの数値と演算子を格納するために最低3つの変数を用意する必要がある
数値の格納に浮動小数点型の変数を使用すると、計算結果に誤差が発生するので、数値を文字列型の変数に格納し、計算はBigDecimalクラスで用意されているメソッドを使用する
数値の入力は、入力済みの数値の右にボタンを押すたびに追加されていくスタイルなので、文字列の方が扱いやすい
メソッドとしては、数字入力、機能の割り当て、計算の3つが基本
+αとしてバイブ機能の追加、画面の向きを変えたときの計算結果の保持、サブディスプレイの表示がある

アレンジ

自分なりにレイアウトをアレンジ
途中エラーがでたが、引き算のsubとサブディスプレイのsubが同じになってたのが原因

エラー

今のところ分かってるエラー

数字を入力しすぎるとボタンがつぶれていき、ボタンが押せなくなる
計算結果がアプリを終了させても残る(onDestroyまで行われない場合)
0.0など小数点以下に0が入る0は割るとダメ