---
# System prepended metadata

title: 2021.07.15（木）③④
tags: [授業ノート, AN25]

---

# 2021.07.15（木）③④
###### tags: `AN25` `授業ノート`

電卓計算手順
1. 数値1入力　→　ディスプレイの右から数字を追加表示
2. 演算子入力(+ - * /)
3. 数値2入力　→　ディスプレイをクリアし、右から数字を追加
4. =入力　→　計算結果をディスプレイへ表示

* 数字および小数点(.)
    * numKeyOnClick()Methodが呼ばれる(先生Ver)
    * handleClickNumber(宮Ver) 

* 数字を入力できるようにする
    1. numKeyOnClick()メソッド機能
        ① 入力が数字キー(0~9) 入力済の後ろに追加
        ② 入力が小数点(.)
         * 最初の入力なら"0."表示
         * 最初でなければ、入力済みの後ろに追加
         * 小数点は重複入力できない


* 数字Buttonテキスト(0~9)を取得して、入力済みの後ろに追加する

work area : strTemp(初期値Null)

入力キーのテキストを取得する方法
```java=
public void numKeyOnClick(View V(←ボタンのプロパティ)){
    Stirng s = (String)((Button)V).getText();
    //取得したテキストをワークに連結する
}
```


    

:::spoiler layout.xml
```xml=
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="vertical">

    <TextView
        android:id="@+id/DisplayPanel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="30dp"
        android:textColor="#000000"
        android:background="#ffffff"
        android:gravity="right"
        android:textSize="48sp"
        android:text="0"/>

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <Button
                android:id="@+id/KeyCopy"
                android:layout_width="80dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="Copy"
                android:onClick="handleClickFunction" />

            <Button
                android:id="@+id/KeyClear"
                android:layout_width="80dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="C"
                android:onClick="handleClickFunction" />

            <Button
                android:id="@+id/KeyAllClear"
                android:layout_width="80dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="AC"
                android:onClick="handleClickFunction" />

            <Button
                android:id="@+id/KeyBackSpace"
                android:layout_width="80dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="BS"
                android:onClick="handleClickFunction" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <Button
                android:id="@+id/Key7"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="7"
                android:onClick="handleClickNumber" />

            <Button
                android:id="@+id/Key8"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="8"
                android:onClick="handleClickNumber" />

            <Button
                android:id="@+id/Key9"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="9"
                android:onClick="handleClickNumber" />

            <Button
                android:id="@+id/KeyDivision"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="/"
                android:onClick="handleClickOperator" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow3"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <Button
                android:id="@+id/Key4"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="4"
                android:onClick="handleClickNumber" />

            <Button
                android:id="@+id/Key5"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="5"
                android:onClick="handleClickNumber" />

            <Button
                android:id="@+id/Key6"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="6"
                android:onClick="handleClickNumber" />

            <Button
                android:id="@+id/KeyMultiple"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="*"
                android:onClick="handleClickOperator" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow4"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <Button
                android:id="@+id/Key1"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="1"
                android:onClick="handleClickNumber" />

            <Button
                android:id="@+id/Key2"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="2"
                android:onClick="handleClickNumber" />

            <Button
                android:id="@+id/Key3"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="3"
                android:onClick="handleClickNumber" />

            <Button
                android:id="@+id/KeySubtraction"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="-"
                android:onClick="handleClickOperator" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow5"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <Button
                android:id="@+id/Key0"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="0"
                android:onClick="handleClickNumber" />

            <Button
                android:id="@+id/KeyDot"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="."
                android:onClick="handleClickNumber" />

            <Button
                android:id="@+id/KeyEq"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="="
                android:onClick="handleClickOperator" />

            <Button
                android:id="@+id/KeyAddition"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="24sp"
                android:text="+"
                android:onClick="handleClickOperator" />
        </TableRow>
    </TableLayout>

</LinearLayout>
```
:::

:::spoiler MainActivity.java
```java=
package nhs00157.hal.ac.mycalculator;

import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    private TextView DisplayPanel;
    String mount_value = "";
    String initial_value;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        DisplayPanel = (TextView)findViewById(R.id.DisplayPanel);
        initial_value = (String)DisplayPanel.getText();
    }

    public void handleClickNumber(View props){
        if (initial_value.equals('0')) DisplayPanel.setText("");
        String button_value = (String)((Button) props).getText();
        mount_value = mount_value + button_value;
        DisplayPanel.setText(mount_value);
    }
}


```
:::


<span style="font-size: 200px">やすいくんいるやん</span>
わろた。課題なう。まねして痛いめみたところ
修正した。なるほ
昔の人だから許してあげて
ｗかわいそう
引退すれば後輩が幸せになる
中谷先生は引退するね。したがってるね
40さい後半ぐらい？にみえる
若い奥さんいるのがずるい
高専かなんかで教えてた生徒と結婚したよね。
資料よ
ムキムキではない俺たちは性欲弱いかな
適当にババッとは書いてある
そんな時間かかるもんではない笑
あー確かにむずいね。知識がまずないわし
むずいね
課題やります
コピっても動かんで、参考にするかな
全部コピレバ動くのか
xmlファイルだけ配られてて、みやのコピったことない人は動く
オプションは当たり前に動かんけど
そうだｗ逆
とりあえずやってるなう
徹夜になりそうだったら萎える
お、どれぐらいで終わるんか気になる
今どこまでやってあるん
オプションどころか、普通の課題もできてない感じか
あー夏休み前のやつか
それは強い
react nativeと雰囲気にとる？
xmlとjavaファリウが同じところにかけるんか
断然良いね
同じやね！やりますか課題
Propsの受け渡しもできるんやね

課題なう？このコードまねしないほうがいいよ
keyIdとか全部買えてるからね
先生の変数宣言とか気に食わないまじで
おれは容赦ない
早く引退しろって思ってる
中谷先生とか
まだ若いよねあのひと
そんな若い奥さん？でもこどももちいさいよね
やば変態やん
ムキムキは性欲強いもん
弱くはない
企画書書いた？
まじか俺寝れんなｗ
なんも書いてない
ＮＦＴとかどこから書けばいいんやろ
しくみとか　全然構想練ってない
おれも知識ないよまったく
かだいやりますか
資料をこぴル？
そうなの＞
答えくばってるとか言ってたからうごくんやないの
そゆこと
いや逆やろ？Javaファイルを配ってるやない？
オプションどうしようかなおけい
おれ一瞬で終わらせて見せる
ここに書いてるコードはカンマと０割と小数計算ができてないだけかな
このコード７月のやつだからね
XMLを授業でかいたその日にここまで書いておいたやつ
だから全部無視してプログラム書いてる
いやー１ページに全部ロじっく書けるからreactnativeのほうが断然良い
ページが分かれるとやりにくい
でも仕組みは全く同じ屋根
そうそう
マジでreactと同じ
propsの概念とかもほぼ同じ


    public void onClickNumber(View props) {
        String buttonValue = (String)((Button) props).getText();
        
 propsってかいてるもんおれ
        
        
        
## 雑談 (0→やまぴ 1→みや 2→やすい 3→りょうくん 4→アミカ 5→やの 6→山田)

:::success
使ってみたかっただけ
:::

:::spoiler 電卓レイアウト.xmlくじ
はずれ :-1: 
:::

:::spoiler 電卓レイアウト.xmlくじ
あたり :+1: 
:::

:::spoiler 電卓計算機能.java
```java=
package nhs00157.hal.ac.mycalculator;

import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    private TextView DisplayPanel;
    String mount_value = "";
    String operator = "";
    String copy_value = "";
    String left_side = "";
    String right_side = "";
    String result = "";
    float resultInt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        DisplayPanel = (TextView)findViewById(R.id.DisplayPanel);
    }

    public void handleClickNumber(View props) {
        String button_value = (String)((Button) props).getText();

        if (button_value.equals(".")) {
            if (mount_value.indexOf(".") != -1) {
                return;
            } else if (mount_value.equals("")) {
                mount_value = "0.";
                DisplayPanel.setText("0.");
                return;
            } else {
                mount_value = mount_value + button_value;
                DisplayPanel.setText(mount_value);
                return;
            }
        }

        if (mount_value.equals("")) {
            if (button_value.equals("0")) {
                return;
            }
            mount_value = button_value;
            DisplayPanel.setText(button_value);
            return;
        }

        mount_value = mount_value + button_value;
        DisplayPanel.setText(mount_value);
    }

    public void handleClickFunction(View props) {
        int button_value = props.getId();
        switch (button_value) {
            case R.id.KeyCopy:
                copy_value = mount_value;
                break;
            case R.id.KeyClear:
                operator = "";
                break;
            case R.id.KeyAllClear:
                mount_value = "";
                operator = "";
                copy_value = "";
                left_side = "";
                right_side = "";
                DisplayPanel.setText("0");
                break;
            case R.id.KeyBackSpace:
                if (mount_value.length() == 1) {
                    mount_value = "";
                    DisplayPanel.setText("0");
                    break;
                }
                String new_value = mount_value.substring(0, mount_value.length()-1);
                mount_value = new_value;
                DisplayPanel.setText(new_value);
                break;
        }

    }

    public void handleClickOperator(View props) {
        int button_value = props.getId();
        switch (button_value) {
            case R.id.KeyDivision:
                operator = "/";
                left_side = mount_value;
                mount_value = "";
                break;
            case R.id.KeyMultiple:
                operator = "*";
                left_side = mount_value;
                mount_value = "";
                break;
            case R.id.KeySubtraction:
                operator = "-";
                left_side = mount_value;
                mount_value = "";
                break;
            case R.id.KeyAddition:
                operator = "+";
                left_side = mount_value;
                mount_value = "";
                break;
            case R.id.KeyEq:
                if (left_side.equals("")) {
                    break;
                } else {
                    right_side = mount_value;
                    float left = Float.parseFloat(left_side); // Floatだめですね
                    float right = Float.parseFloat(right_side);
                    switch (operator) {
                        case "/":
                            resultInt = left / right;
                            break;
                        case "*":
                            resultInt = left * right;
                            break;
                        case "-":
                            resultInt = left - right;
                            break;
                        case "+":
                            resultInt = left + right;
                            break;
                    }
                    result = new Float(resultInt).toString();
                    DisplayPanel.setText(result);

                    mount_value = "";
                    operator = "";
                    copy_value = "";
                    left_side = "";
                    right_side = "";
                    result = "";
                    break;
                }
        }
    }
}


```
:::

1.helloworld

2.こんにちは

1.hahnainainknvkankvnak

要するに必ずrightに数字が入っている必要はない
leftに数字が入っている状態でのeqはleftを表示
leftに数字が入っていてoperatorにも入っていてrightには入っていない場合
* +の場合はleft + left
* -の場合 left - left
* *の場合 left * left
* ÷の場合　left ÷ leftになる
* eqを押しただけ繰り返される

---
<span style="color: #ff3333">aaa</span>
