3.4
安卓计算器小程序
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MyCalculator"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="简单计算器"
android:gravity="center"
android:background="#888888"
android:textSize="17sp"
android:textColor="#006666"/>
<TextView
android:id="@+id/tv_result0"
android:layout_width="match_parent"
android:layout_height="120dp"
android:background="#eeeeee"
android:text="0"
android:textSize="30sp"
android:gravity="bottom|right"
/>
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="4"
android:rowCount="5"
>
<Button
android:id="@+id/bt_CE"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="CE"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_chu"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="/"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_cheng"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="X"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_C"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="C"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_7"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="7"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_8"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="8"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_9"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="9"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_jia"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="+"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_4"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="4"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_5"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="5"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_6"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="6"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_jian"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="-"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_1"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="1"
android:textSize="30sp"
android:textColor="@color/black"
/> <Button
android:id="@+id/bt_2"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="2"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_3"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="3"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_genhao"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="✔"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_daoshu"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="1/x"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_0"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="0"
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_dian"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="."
android:textSize="30sp"
android:textColor="@color/black"
/>
<Button
android:id="@+id/bt_dengyu"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:height="80dp"
android:text="="
android:textSize="30sp"
android:textColor="@color/black"
/>
</GridLayout>
</LinearLayout>
package com.example.chapter02;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class MyCalculator extends AppCompatActivity implements View.OnClickListener {
private TextView tv_result;
private String first_input="";
private String second_input="";
private String operator_input="";
private String result="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_calculator);
tv_result=findViewById(R.id.tv_result0);
findViewById(R.id.bt_CE).setOnClickListener(this);
findViewById(R.id.bt_chu).setOnClickListener(this);
findViewById(R.id.bt_cheng).setOnClickListener(this);
findViewById(R.id.bt_C).setOnClickListener(this);
findViewById(R.id.bt_7).setOnClickListener(this);
findViewById(R.id.bt_8).setOnClickListener(this);
findViewById(R.id.bt_9).setOnClickListener(this);
findViewById(R.id.bt_4).setOnClickListener(this);
findViewById(R.id.bt_5).setOnClickListener(this);
findViewById(R.id.bt_6).setOnClickListener(this);
findViewById(R.id.bt_1).setOnClickListener(this);
findViewById(R.id.bt_2).setOnClickListener(this);
findViewById(R.id.bt_3).setOnClickListener(this);
findViewById(R.id.bt_0).setOnClickListener(this);
findViewById(R.id.bt_daoshu).setOnClickListener(this);
findViewById(R.id.bt_dian).setOnClickListener(this);
findViewById(R.id.bt_dengyu).setOnClickListener(this);
findViewById(R.id.bt_genhao).setOnClickListener(this);
findViewById(R.id.bt_jian).setOnClickListener(this);
findViewById(R.id.bt_jia).setOnClickListener(this);
}
@Override
public void onClick(View v) {
String inputText;
inputText=((TextView)v).getText().toString();
if(v.getId()==R.id.bt_CE){
} else if (v.getId()==R.id.bt_chu) {
first_input=result;
result+="/";
operator_input="/";
setFresh(result);
}else if (v.getId()==R.id.bt_cheng) {
first_input=result;
result+="*";
operator_input="*";
setFresh(result);
}else if (v.getId()==R.id.bt_C) {
clear();
}else if (v.getId()==R.id.bt_jia) {
first_input=result;
result+="+";
operator_input="+";
setFresh(result);
}else if (v.getId()==R.id.bt_jian) {
first_input=result;
result+="-";
operator_input="-";
setFresh(result);
}else if (v.getId()==R.id.bt_genhao) {
first_input=result;
operator_input="✔";
first_input=Double.toString(operatorCa());
result=first_input;
setFresh(result);
end();
}else if (v.getId()==R.id.bt_dengyu) {
first_input=Double.toString(operatorCa());
result=first_input;
setFresh(result);
end();
}else if (v.getId()==R.id.bt_daoshu) {
first_input=result;
operator_input="1/x";
first_input=Double.toString(operatorCa());
result=first_input;
setFresh(result);
end();
}else {
if(operator_input.equals("")){
first_input+=inputText;
}else {
second_input+=inputText;
}
if(tv_result.getText().equals("0") && !inputText.equals(".")){
setFresh(inputText);
}else {
setFresh(result+inputText);
}
}
}
private double operatorCa(){
switch (operator_input){
case "+":
return Double.parseDouble(first_input)+Double.parseDouble(second_input);
case "-":
return Double.parseDouble(first_input)-Double.parseDouble(second_input);
case "*":
return Double.parseDouble(first_input)*Double.parseDouble(second_input);
case "/":
return Double.parseDouble(first_input)/Double.parseDouble(second_input);
case "✔":
return Math.sqrt(Double.parseDouble(first_input));
case "1/x":
return 1.0/Double.parseDouble(first_input);
}
return 0;
}
private void end(){
second_input="";
operator_input="";
}
private void clear(){
setFresh("0");
first_input="";
second_input="";
operator_input="";
}
private void setFresh(String text){
result=text;
tv_result.setText(result);
}
}
浙公网安备 33010602011771号