android制作一个计算器
时间: 2024-05-03 20:16:58 浏览: 23
好的,下面是一个简单的Android计算器示例:
1. 首先,创建一个新的Android Studio项目。选择Empty Activity模板,并将应用程序命名为Calculator。
2. 打开activity_main.xml文件,并添加一个LinearLayout,其中包含一个EditText和一个TableLayout。EditText用于显示计算结果,TableLayout包含计算器按钮。
3. 在TableLayout中添加9个Button,分别代表数字1-9,以及加、减、乘、除和等于号。
4. 在MainActivity.java文件中,定义EditText和Button的对象,并为每个Button设置OnClick事件。在OnClick事件中,将每个按钮的文本追加到EditText中,以便用户可以输入表达式。
5. 在等号按钮的OnClick事件中,从EditText中获取表达式,并使用Android内置的eval()函数计算表达式的结果。将结果设置为EditText的文本。
6. 运行应用程序并测试。
以下是MainActivity.java文件的示例代码:
```java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import org.mariuszgromada.math.mxparser.*;
public class MainActivity extends AppCompatActivity {
EditText editText;
Button button0, button1, button2, button3, button4, button5, button6, button7, button8, button9;
Button buttonPlus, buttonMinus, buttonMultiply, buttonDivide, buttonEqual;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
button0 = findViewById(R.id.button0);
button1 = findViewById(R.id.button1);
button2 = findViewById(R.id.button2);
button3 = findViewById(R.id.button3);
button4 = findViewById(R.id.button4);
button5 = findViewById(R.id.button5);
button6 = findViewById(R.id.button6);
button7 = findViewById(R.id.button7);
button8 = findViewById(R.id.button8);
button9 = findViewById(R.id.button9);
buttonPlus = findViewById(R.id.buttonPlus);
buttonMinus = findViewById(R.id.buttonMinus);
buttonMultiply = findViewById(R.id.buttonMultiply);
buttonDivide = findViewById(R.id.buttonDivide);
buttonEqual = findViewById(R.id.buttonEqual);
button0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.append("0");
}
});
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.append("1");
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.append("2");
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.append("3");
}
});
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.append("4");
}
});
button5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.append("5");
}
});
button6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.append("6");
}
});
button7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.append("7");
}
});
button8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.append("8");
}
});
button9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.append("9");
}
});
buttonPlus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.append("+");
}
});
buttonMinus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.append("-");
}
});
buttonMultiply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.append("*");
}
});
buttonDivide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.append("/");
}
});
buttonEqual.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String expression = editText.getText().toString();
Expression e = new Expression(expression);
editText.setText(String.valueOf(e.calculate()));
}
});
}
}
```
请注意,此示例仅支持基本运算。如果您需要更复杂的计算器功能,您可能需要使用更高级的算法和数据结构。