用android studio写计算器的代码
时间: 2023-10-07 22:09:26 浏览: 114
基于Android Studio 开发计算器代码
好的,以下是一个简单的基于Android Studio的计算器应用程序的代码:
XML布局代码:
```
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="0"
android:gravity="end"
android:textSize="30sp"
android:layout_margin="10dp"/>
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="4"
android:layout_margin="10dp"
android:rowCount="5">
<Button
android:id="@+id/btnClear"
android:layout_gravity="fill"
android:layout_row="0"
android:layout_column="0"
android:layout_rowSpan="1"
android:text="C"/>
<Button
android:id="@+id/btnBackspace"
android:layout_gravity="fill"
android:layout_row="0"
android:layout_column="1"
android:layout_rowSpan="1"
android:text="BACK"/>
<Button
android:id="@+id/btnPercent"
android:layout_gravity="fill"
android:layout_row="0"
android:layout_column="2"
android:layout_rowSpan="1"
android:text="%"/>
<Button
android:id="@+id/btnDivide"
android:layout_gravity="fill"
android:layout_row="0"
android:layout_column="3"
android:layout_rowSpan="1"
android:text="/"/>
<Button
android:id="@+id/btnSeven"
android:layout_gravity="fill"
android:layout_row="1"
android:layout_column="0"
android:layout_rowSpan="1"
android:text="7"/>
<Button
android:id="@+id/btnEight"
android:layout_gravity="fill"
android:layout_row="1"
android:layout_column="1"
android:layout_rowSpan="1"
android:text="8"/>
<Button
android:id="@+id/btnNine"
android:layout_gravity="fill"
android:layout_row="1"
android:layout_column="2"
android:layout_rowSpan="1"
android:text="9"/>
<Button
android:id="@+id/btnMultiply"
android:layout_gravity="fill"
android:layout_row="1"
android:layout_column="3"
android:layout_rowSpan="1"
android:text="*"/>
<Button
android:id="@+id/btnFour"
android:layout_gravity="fill"
android:layout_row="2"
android:layout_column="0"
android:layout_rowSpan="1"
android:text="4"/>
<Button
android:id="@+id/btnFive"
android:layout_gravity="fill"
android:layout_row="2"
android:layout_column="1"
android:layout_rowSpan="1"
android:text="5"/>
<Button
android:id="@+id/btnSix"
android:layout_gravity="fill"
android:layout_row="2"
android:layout_column="2"
android:layout_rowSpan="1"
android:text="6"/>
<Button
android:id="@+id/btnSubtract"
android:layout_gravity="fill"
android:layout_row="2"
android:layout_column="3"
android:layout_rowSpan="1"
android:text="-"/>
<Button
android:id="@+id/btnOne"
android:layout_gravity="fill"
android:layout_row="3"
android:layout_column="0"
android:layout_rowSpan="1"
android:text="1"/>
<Button
android:id="@+id/btnTwo"
android:layout_gravity="fill"
android:layout_row="3"
android:layout_column="1"
android:layout_rowSpan="1"
android:text="2"/>
<Button
android:id="@+id/btnThree"
android:layout_gravity="fill"
android:layout_row="3"
android:layout_column="2"
android:layout_rowSpan="1"
android:text="3"/>
<Button
android:id="@+id/btnAdd"
android:layout_gravity="fill"
android:layout_row="3"
android:layout_column="3"
android:layout_rowSpan="1"
android:text="+"/>
<Button
android:id="@+id/btnPositiveNegative"
android:layout_gravity="fill"
android:layout_row="4"
android:layout_column="0"
android:layout_rowSpan="1"
android:text="+/-"/>
<Button
android:id="@+id/btnZero"
android:layout_gravity="fill"
android:layout_row="4"
android:layout_column="1"
android:layout_rowSpan="1"
android:text="0"/>
<Button
android:id="@+id/btnDecimalPoint"
android:layout_gravity="fill"
android:layout_row="4"
android:layout_column="2"
android:layout_rowSpan="1"
android:text="."/>
<Button
android:id="@+id/btnEquals"
android:layout_gravity="fill"
android:layout_row="4"
android:layout_column="3"
android:layout_rowSpan="1"
android:text="="/>
</GridLayout>
```
Java 代码:
```
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText editText;
private String currentString = "";
private boolean isOperatorClicked = false, isEqualsClicked = false;
private char currentOperator = ' ';
private double leftValue = 0.0, rightValue = 0.0, result = 0.0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
findViewById(R.id.btnClear).setOnClickListener(this);
findViewById(R.id.btnBackspace).setOnClickListener(this);
findViewById(R.id.btnPercent).setOnClickListener(this);
findViewById(R.id.btnDivide).setOnClickListener(this);
findViewById(R.id.btnSeven).setOnClickListener(this);
findViewById(R.id.btnEight).setOnClickListener(this);
findViewById(R.id.btnNine).setOnClickListener(this);
findViewById(R.id.btnMultiply).setOnClickListener(this);
findViewById(R.id.btnFour).setOnClickListener(this);
findViewById(R.id.btnFive).setOnClickListener(this);
findViewById(R.id.btnSix).setOnClickListener(this);
findViewById(R.id.btnSubtract).setOnClickListener(this);
findViewById(R.id.btnOne).setOnClickListener(this);
findViewById(R.id.btnTwo).setOnClickListener(this);
findViewById(R.id.btnThree).setOnClickListener(this);
findViewById(R.id.btnAdd).setOnClickListener(this);
findViewById(R.id.btnPositiveNegative).setOnClickListener(this);
findViewById(R.id.btnZero).setOnClickListener(this);
findViewById(R.id.btnDecimalPoint).setOnClickListener(this);
findViewById(R.id.btnEquals).setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btnClear:
currentString = "";
leftValue = 0.0;
rightValue = 0.0;
result = 0.0;
isOperatorClicked = false;
isEqualsClicked = false;
currentOperator = ' ';
editText.setText("");
break;
case R.id.btnBackspace:
if (!TextUtils.isEmpty(currentString)) {
currentString = currentString.substring(0, currentString.length() - 1);
}
editText.setText(currentString);
break;
case R.id.btnPercent:
if (!TextUtils.isEmpty(currentString)) {
currentString = String.valueOf(Double.parseDouble(currentString) / 100);
}
editText.setText(currentString);
break;
case R.id.btnDivide:
case R.id.btnMultiply:
case R.id.btnSubtract:
case R.id.btnAdd:
if (!TextUtils.isEmpty(currentString) && !isOperatorClicked) {
leftValue = Double.parseDouble(currentString);
currentString = "";
editText.setText("");
currentOperator = view.getTag().toString().charAt(0);
isOperatorClicked = true;
}
break;
case R.id.btnEquals:
if (!TextUtils.isEmpty(currentString) && isOperatorClicked) {
rightValue = Double.parseDouble(currentString);
switch (currentOperator) {
case '/':
result = leftValue / rightValue;
break;
case '*':
result = leftValue * rightValue;
break;
case '-':
result = leftValue - rightValue;
break;
case '+':
result = leftValue + rightValue;
break;
}
currentString = String.valueOf(result);
editText.setText(currentString);
isEqualsClicked = true;
}
break;
default:
if (!isEqualsClicked) {
currentString += ((Button) view).getText().toString();
editText.setText(currentString);
}
break;
}
}
}
```
这就是一个简单的计算器应用程序的代码,你可以将其复制到Android Studio中。
阅读全文