android计算器功能实现,在android中利用 studio实现一个简单的计算器功能
时间: 2023-07-28 08:51:09 浏览: 85
要在Android Studio中实现一个简单的计算器功能,可以按照以下步骤进行:
1. 创建一个新的Android项目,并在布局文件中添加一个TextView和多个Button,用于显示计算器的输入和输出。
2. 写一个类来处理计算器逻辑。在这个类中,可以定义一个Stack数据结构来存储输入的数字和操作符,并在用户按下符号按钮时对其进行处理。可以使用一个switch语句来判断用户按下的按钮是数字还是操作符,并在相应的情况下将其添加到Stack中。当用户按下等于符号时,可以遍历Stack并计算出结果。最后,将结果显示在TextView中。
3. 在Activity中,将计算器逻辑类实例化,并将其与按钮的点击事件关联。在每个按钮的点击事件中,调用适当的计算器逻辑方法,以便将用户的输入添加到Stack中。
4. 最后,在布局文件中使用约束布局或线性布局等方式,使TextView和按钮正确地排列在屏幕上。
下面是一个简单的计算器逻辑类的示例代码:
```java
import java.util.Stack;
public class Calculator {
private Stack<Double> stack;
public Calculator() {
stack = new Stack<>();
}
public void pushNumber(double num) {
stack.push(num);
}
public void pushOperator(char op) {
double num2 = stack.pop();
double num1 = stack.pop();
double result = 0;
switch (op) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
}
stack.push(result);
}
public double getResult() {
return stack.pop();
}
}
```
在Activity中,可以按如下方式处理按钮的点击事件:
```java
public class MainActivity extends AppCompatActivity {
private TextView textView;
private Calculator calculator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
calculator = new Calculator();
}
public void onNumberButtonClick(View view) {
Button button = (Button) view;
double num = Double.parseDouble(button.getText().toString());
calculator.pushNumber(num);
textView.setText(textView.getText() + button.getText().toString());
}
public void onOperatorButtonClick(View view) {
Button button = (Button) view;
char op = button.getText().toString().charAt(0);
calculator.pushOperator(op);
textView.setText(textView.getText() + button.getText().toString());
}
public void onEqualButtonClick(View view) {
double result = calculator.getResult();
textView.setText(Double.toString(result));
}
}
```
在布局文件中,可以按如下方式添加按钮:
```xml
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="48dp"
android:gravity="end"
android:textSize="24sp" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp">
<Button
android:text="1"
android:onClick="onNumberButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:text="2"
android:onClick="onNumberButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:text="3"
android:onClick="onNumberButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:text="+"
android:onClick="onOperatorButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp">
<Button
android:text="4"
android:onClick="onNumberButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:text="5"
android:onClick="onNumberButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:text="6"
android:onClick="onNumberButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:text="-"
android:onClick="onOperatorButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp">
<Button
android:text="7"
android:onClick="onNumberButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:text="8"
android:onClick="onNumberButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:text="9"
android:onClick="onNumberButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:text="*"
android:onClick="onOperatorButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp">
<Button
android:text="0"
android:onClick="onNumberButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:text="="
android:onClick="onEqualButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:text="/"
android:onClick="onOperatorButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:text="C"
android:onClick="onClearButtonClick"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
```
这样就可以在Android Studio中实现一个简单的计算器功能了。当然,这只是一个简单的示例,还可以根据需要进行更复杂的扩展。
阅读全文