こんにちは,さかなです.

 

前回は数字を連続して表示できるようにするまでをやりました.

 

今回は数字,記号が実際の計算機のように画面に表示されるまでです.

 

 

まず,記号の表示&後々の計算部分のためにTextViewを配列化しました.今回ではとりあえず配列の長さは20としています.

 

 

また,配列の番号を収納するint型変数countと正しく記号を表示させるために使うint型変数kigouCount,equalCountをクラス変数として宣言しています.

 

以下の画像は数字部分が押された時の処理と,記号部分が押された時の処理を書いたものです.

 

 

 

 

数字部分は押されると該当する数字を画面に表示し,次に表示される数字または記号のためにcountを1上げています.

 

次に記号部分です.

実際の計算機では以下に挙げている挙動はしません.

・記号が続けて表示される(++× みたいな)

・数字が入力されていないのに記号が表示される(一番最初に+があるとか)

・四則演算記号が入力されていないのに=が表示される(13= とか)

 

このような挙動をしないようにプログラムしていかなければいけません.

 

最初は記号のボタンが押された際に1つ前の配列に入っているものが記号であれば,記号を表示しないようにする.という方向で実現しようと思っていたのですが,どうもappendで追加した記号はString型の同一の記号と判別してくれないみたいなので,うまくいきませんでした.

 

そこで,上の画像のように変数kigouCountを用いて,記号ボタンが押された時にkigouCountを1増やし,kigouCountが2以上になると画面に記号を表示させないようにしました.また,数字ボタンが押された際にkigouCountの値を0にリセットすることで必ず記号が数字に挟まれるようにしました.

 

イコールボタンも記号と同じ条件をつけ,それに付け加える形で,一度も四則演算記号が押されていない場合は=を表示しないようにしています.(要は”13=”とならないようにしました)

 

以下が,自分のタブレットで実行したときの画面です.

 

 

 

今回はここまで

次回からいよいよ計算部分を実装していきます(個人的な難関だと思っています)