初心者ai8249の技術ブログ

医療IT科の専門学生です。学んだことをゆるゆる書いていくブログ。

アプリ開発 第五回目

こんばんは。

ai8249です。では早速ですが前回の続きをやってまいりましょー。

前回同様参考にさせていただくサイトはこちら。

kuguido-fujinka.com

 

前回は数字は表示できたものの連続した数字はムリというところで終わってましたね。

ということで、、、

 

ボタンを押した時に取得する数字をBigDecimalに変えます。

f:id:ai8249:20161214173511j:plain

 

連続した数値を入力できるように入力値を10倍にして入力値に戻すらしいです。

そしてボタンの値のBigDeximalを生成して入力値にプラス。

最後にtextViewへの出力のための引数を変更し、

f:id:ai8249:20161214174015j:plain

 

エミュレーター起動

f:id:ai8249:20161214174056j:plain

ちゃんと連続して出せました!!

 

 

そして要となる四則演算のメソッドを考えます。

+-×/にandroid:onClick="opBttononClick"と追加。

javaのソースにopButtonOnClickメソッドを定義して処理を考えます。

f:id:ai8249:20161214174602j:plain

 

=を押されたらもちろん計算した数が出てくる!!

その処理はeqBttonOnClickで行いました。

足し算・引き算・掛け算・割り算とありますが、まず割り算以外の3つをif分で定義。

計算結果はtextViewに格納して表示します。

f:id:ai8249:20161214175057j:plain

 

割り算についての処理は他の四則演算子のメソッドと同じですが、小数点を何桁まで計算するのかを考えます。

f:id:ai8249:20161214175439j:plainresultvalu = preInputValue.devide(inputValue, 9, BigDecimal.ROUND_HALF_UP);

ここのは小数点以下9桁表示の四捨五入を指定してます。

 

この後エミュレーターで確認してみると2行になってレイアウトがずれてしまいました。

なので7に変更したところ…

f:id:ai8249:20161214175853j:plain

綺麗にレイアウトされてます!!

 

今度は6÷0=を計算するとエラーに。

そこで0での割り算を避けるための処理の追加。

割る数が0の時は『ERROR』を表示させるように設定。

f:id:ai8249:20161214180254j:plain

6÷0=をすると、ちゃんとERRORをでかでかと表示してくれました!!

 

 

次に今まで気になっていた右ボタンの幅の狭さ。

これは各ボタンにandroid:layout_weight="1"を追加して解決!!

f:id:ai8249:20161214180619j:plain

 

c以外のボタンも同じく設定。

f:id:ai8249:20161214180749j:plain

う〜ん、綺麗ですね!!

 

そして全てのボタンの背景色をTextViewと同じに揃え、cのボタンについてはレイアウトを考えて横に伸ばす感じに。

f:id:ai8249:20161214181025j:plain

 

次はこのcボタン(クリアボタン)の処理へ

xmlファイルのクリアボタンにandroid:onClicl="clearButtonOnClick"と追記。

f:id:ai8249:20161214181241j:plain

 

javaプログラムにclearButtonOnClick()メソッドを定義し、エミュレーターで確認。

f:id:ai8249:20161214181425j:plain

 

ここでcボタンを押すと、、、

f:id:ai8249:20161214181456j:plain

0が表示されました!!

 

 

そのあと同じ定義があるので、この処理をメソッドとして定義しました。

ここで動作を確認するために1+2=と押し、3が表示されたあとイコールボタンを押すと4になってしまいます。

f:id:ai8249:20161214181928j:plain

これは計算をした後イコールボタンを押すと、計算結果と最初に入力した値がその演算子で再度計算されているらしいです。

 

これを解決するためにoperator = R.id.ButtonEq;の一文を追記。

すると3×6=の後に連続して=を押しても18のままになりました。

f:id:ai8249:20161214182308j:plain

 

 

レイアウトとして余白の白い部分が入らないので

f:id:ai8249:20161214183640j:plain

xmlファイルの"16dp"とかかれた四行を消去。

 

すると綺麗に。

f:id:ai8249:20161214183808j:plain

 

1+2=と押した後3と表示されますが、続けて4を押すと34になるのを修正しました。

これらの計算結果の修正を幾つかしました。

 

 

次回はこの続きからです。