Android简易计算demo

2022-08-17 11:45:44

效果如图:
在这里插入图片描述
activity_main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="clip_horizontal"android:orientation="vertical"android:padding="30dp"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="操作数:"android:textSize="20sp"/><EditTextandroid:id="@+id/firstNum"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:hint="请输入数值操作数"android:textStyle="bold"android:inputType="number"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="算术运算:"android:textSize="20sp"></TextView><Spinnerandroid:id="@+id/operator"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:entries="@array/sign"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="操作数:"android:textSize="20sp"/><EditTextandroid:id="@+id/secondNum"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:hint="请输入数值操作数"android:textStyle="bold"android:inputType="number"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><Buttonandroid:id="@+id/calc"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="等于:"/><TextViewandroid:id="@+id/result"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="5"android:hint="计算结果"android:padding="15dp"android:textColor="#F44336"android:textSize="25sp"android:textStyle="bold"/></LinearLayout></LinearLayout>

arrays.xml

<?xml version="1.0" encoding="utf-8"?><resources><string-arrayname="sign"><item>请选择运算符</item><item>+</item><item>-</item><item>*</item><item>/</item></string-array></resources>

MainActivity

packagecom.jld.homework;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.AdapterView;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.Spinner;importandroid.widget.TextView;importandroidx.appcompat.app.AppCompatActivity;publicclassMainActivityextendsAppCompatActivity{String op;@OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Spinner spinner=(Spinner)this.findViewById(R.id.operator);//获取活动布局中的Spinner对象//为Spinner注册内部监听器对象
        spinner.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener(){@OverridepublicvoidonItemSelected(AdapterView<?> parent,View view,int position,long id){//将Spinner选项的值赋值给成员变量op(保存算术运算符)
                op=((TextView) view).getText().toString();}@OverridepublicvoidonNothingSelected(AdapterView<?> parent){}});//各类组件Button calcButton=findViewById(R.id.calc);EditText firstNum=findViewById(R.id.firstNum);EditText secondNum=findViewById(R.id.secondNum);TextView result=findViewById(R.id.result);//计算核心
        calcButton.setOnClickListener(v->{switch(op){case"+":{double r=Double.parseDouble(firstNum.getText().toString())+Double.parseDouble(secondNum.getText().toString());
                    result.setText(String.valueOf(r));break;}case"-":{double r=Double.parseDouble(firstNum.getText().toString())-Double.parseDouble(secondNum.getText().toString());
                    result.setText(String.valueOf(r));break;}case"*":{double r=Double.parseDouble(firstNum.getText().toString())*Double.parseDouble(secondNum.getText().toString());
                    result.setText(String.valueOf(r));break;}case"/":{double r=Double.parseDouble(firstNum.getText().toString())/Double.parseDouble(secondNum.getText().toString());
                    result.setText(String.valueOf(r));break;}default://非法情况报错
                    result.setText(R.string.ERROR);break;}});}}
  • 作者:野草本草
  • 原文链接:https://blog.csdn.net/UZDW_/article/details/117369694
    更新时间:2022-08-17 11:45:44