Android Stdio 实现计算器
时间: 2023-11-11 22:58:38 浏览: 141
Android Studio可以实现计算器应用程序。计算器通常是由按钮和TextView组成的。按钮用于输入数字和进行计算操作,TextView则用于显示结果。在Android Studio中可以使用GridLayout来创建这些按钮,并使用适当的布局将它们放置在屏幕上。在Java代码中,可以使用适当的逻辑来处理输入和计算,并将结果输出到TextView中。
相关问题
用android stdio编写计算器
很好的问题,下面是一个简单的示例:
1. 首先,在Android Studio中创建一个新的项目。
2. 在项目结构中,添加一个EditText用于输入数字,一个TextView用于显示结果,以及多个Button用于操作符和数字。
3. 将Button的OnClick事件绑定到Java代码中的相应方法。
```
public class MainActivity extends AppCompatActivity {
private EditText input;
private TextView result;
private double operand1 = Double.NaN;
private double operand2;
private String operator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
input = findViewById(R.id.input);
result = findViewById(R.id.result);
}
public void numberClicked(View view) {
Button button = (Button) view;
String buttonText = button.getText().toString();
String currentInput = input.getText().toString();
currentInput += buttonText;
input.setText(currentInput);
}
public void operatorClicked(View view) {
Button button = (Button) view;
String buttonText = button.getText().toString();
String currentInput = input.getText().toString();
if (!Double.isNaN(operand1)) {
operand2 = Double.parseDouble(currentInput);
if (operator.equals("+")) {
operand1 += operand2;
} else if (operator.equals("-")) {
operand1 -= operand2;
} else if (operator.equals("*")) {
operand1 *= operand2;
} else if (operator.equals("/")) {
operand1 /= operand2;
}
operator = buttonText;
input.setText("");
result.setText(String.valueOf(operand1));
} else {
operator = buttonText;
operand1 = Double.parseDouble(currentInput);
input.setText("");
}
}
public void equalsClicked(View view) {
String currentInput = input.getText().toString();
if (!currentInput.isEmpty()) {
operand2 = Double.parseDouble(currentInput);
if (operator.equals("+")) {
operand1 += operand2;
} else if (operator.equals("-")) {
operand1 -= operand2;
} else if (operator.equals("*")) {
operand1 *= operand2;
} else if (operator.equals("/")) {
operand1 /= operand2;
}
input.setText("");
result.setText(String.valueOf(operand1));
operand1 = Double.NaN;
}
}
public void clearClicked(View view) {
input.setText("");
result.setText("");
operand1 = Double.NaN;
}
}
```
4. 在Java代码中,定义四个方法来处理数字,操作符,并计算结果。
5. 将所有的按钮绑定到上述方法中,每当用户单击按钮时就会调用相应方法。
6. 这样,一个简单的计算器就完成了。用户可以输入数字,使用按钮进行计算,并在TextView上查看结果。
用Android stdio编写计算器
可以使用Android Studio来开发一个简单的计算器应用程序。以下是基本的步骤:
1. 创建一个新的Android项目,并配置项目设置,如应用程序名称,包名称和目标设备。
2. 在Android Studio中创建一个新布局文件,并添加相关的UI组件,如文本框、按钮等。
3. 在MainActivity类中,编写代码以响应按钮的点击事件,并在计算器上执行基本的算术运算。
4. 最后,构建并运行该应用程序,以测试并调试它。
以下是示例代码,可以根据需要修改:
activity_main.xml:
```
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@android:style/TextAppearance.Large"
android:text="0"
android:padding="16dp"
android:gravity="end"/>
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:rowCount="5"
android:columnCount="4"
android:useDefaultMargins="true"
android:alignmentMode="alignMargins"
android:columnOrderPreserved="false">
<Button
android:text="1"
android:layout_row="3"
android:layout_column="0"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onNumberButtonClick"/>
<Button
android:text="2"
android:layout_row="3"
android:layout_column="1"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onNumberButtonClick"/>
<Button
android:text="3"
android:layout_row="3"
android:layout_column="2"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onNumberButtonClick"/>
<Button
android:text="+"
android:layout_row="3"
android:layout_column="3"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onOperatorButtonClick"/>
<Button
android:text="4"
android:layout_row="2"
android:layout_column="0"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onNumberButtonClick"/>
<Button
android:text="5"
android:layout_row="2"
android:layout_column="1"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onNumberButtonClick"/>
<Button
android:text="6"
android:layout_row="2"
android:layout_column="2"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onNumberButtonClick"/>
<Button
android:text="-"
android:layout_row="2"
android:layout_column="3"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onOperatorButtonClick"/>
<Button
android:text="7"
android:layout_row="1"
android:layout_column="0"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onNumberButtonClick"/>
<Button
android:text="8"
android:layout_row="1"
android:layout_column="1"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onNumberButtonClick"/>
<Button
android:text="9"
android:layout_row="1"
android:layout_column="2"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onNumberButtonClick"/>
<Button
android:text="*"
android:layout_row="1"
android:layout_column="3"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onOperatorButtonClick"/>
<Button
android:text="0"
android:layout_row="4"
android:layout_column="1"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onNumberButtonClick"/>
<Button
android:text="/"
android:layout_row="4"
android:layout_column="3"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onOperatorButtonClick"/>
<Button
android:text="AC"
android:layout_row="4"
android:layout_column="0"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onClearButtonClick"/>
<Button
android:text="="
android:layout_row="4"
android:layout_column="2"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:onClick="onEqualsButtonClick"/>
</GridLayout>
</LinearLayout>
```
MainActivity.java:
```
public class MainActivity extends AppCompatActivity {
private static final String STATE_RESULT = "result";
private long mValueOne = 0;
private long mValueTwo = 0;
private boolean mAddition;
private boolean mSubtract;
private boolean mMultiplication;
private boolean mDivision;
private TextView mResultView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mResultView = findViewById(R.id.result);
if(savedInstanceState != null) {
String result = savedInstanceState.getString(STATE_RESULT);
mResultView.setText(result);
}
}
public void onNumberButtonClick(View view) {
String buttonValue = ((Button) view).getText().toString();
String currentResult = mResultView.getText().toString();
if(currentResult.equals("0")) {
currentResult = "";
}
currentResult += buttonValue;
mResultView.setText(currentResult);
}
public void onOperatorButtonClick(View view) {
mValueOne = Long.parseLong(mResultView.getText().toString());
mResultView.setText("0");
if(view.getId() == R.id.plus_button) {
mAddition = true;
} else if(view.getId() == R.id.minus_button){
mSubtract = true;
} else if(view.getId() == R.id.multiply_button) {
mMultiplication = true;
} else if(view.getId() == R.id.divide_button) {
mDivision = true;
}
}
public void onClearButtonClick(View view) {
mValueOne = 0;
mValueTwo = 0;
mAddition = false;
mSubtract = false;
mMultiplication = false;
mDivision = false;
mResultView.setText("0");
}
public void onEqualsButtonClick(View view) {
mValueTwo = Long.parseLong(mResultView.getText().toString());
if(mAddition) {
long result = mValueOne + mValueTwo;
mResultView.setText(String.valueOf(result));
mAddition = false;
}
if(mSubtract) {
long result = mValueOne - mValueTwo;
mResultView.setText(String.valueOf(result));
mSubtract = false;
}
if(mMultiplication) {
long result = mValueOne * mValueTwo;
mResultView.setText(String.valueOf(result));
mMultiplication = false;
}
if(mDivision) {
if(mValueTwo == 0) {
mResultView.setText("Error");
} else {
long result = mValueOne / mValueTwo;
mResultView.setText(String.valueOf(result));
}
mDivision = false;
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
String currentResult = mResultView.getText().toString();
outState.putString(STATE_RESULT, currentResult);
}
}
```
阅读全文